Pas sûr pourquoi, la définition de la fonction dans le champ d'application de l' ready()
est important pour vous, mais vous pouvez le faire fonctionner en déclarant foo
à l'avant:
<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script>
var foo; // Here's the difference
$(document).ready(function(){
foo = function ()
{
alert('Bar');
}
});
</script></head><body>
<input type="button" onclick="foo()" value="Click me">
</body></html>
Évidemment, vous ne pouvez pas appeler foo()
à partir du script en ligne immédiatement après l' ready()
parce que l' ready()
code n'a pas encore été exécuté, mais vous pouvez appeler la fonction plus tard.
Assurez-vous que rien ne peut essayer d'appeler foo()
avant l' ready()
code a exécuter (ou de faire la déclaration initiale de foo()
inoffensives de la fonction).