为什么我不能在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

回到顶部