为什么我不能在jQuery的document.ready()中定义函数?
如果将它们放在document.ready()函数中,则函数的定义为未定义:
$(document).ready(function(){ function foo()
{
alert('Bar');
}
});
foo(); // Undefined
为什么会这样?我确定我只需要一些简单的理解即可:)
回答:
不确定为什么在范围内定义函数ready()
对您很重要,但是您可以通过预先声明使其起作用foo
:
<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>
显然foo()
,ready()
由于ready()
代码尚未运行,您之后不能立即从内联脚本中调用,但是您可以稍后再调用该函数。
只要确保foo()
在ready()
代码运行之前没有任何东西可以尝试调用(或进行foo()
无害函数的初始声明)。
以上是 为什么我不能在jQuery的document.ready()中定义函数? 的全部内容, 来源链接: utcz.com/qa/411514.html