为什么我不能在jQuery的document.ready()中定义函数?

如果将它们放在document.ready()函数中,则函数的定义为未定义:


$(document).ready(function(){

  function foo()

  {

    alert('Bar');

  }

});


foo(); // Undefined

为什么会这样?我确定我只需要一些简单的理解即可:)


呼如林
浏览 879回答 3
3回答

慕斯709654

您可以,但是必须在ready()方法范围内调用它们,否则它们将在ready()方法退出时丢失范围。例如,下面的代码将起作用:$(document).ready(function(){  function foo()  {    alert('Bar');  }  foo(); // still in the scope of the ready method});

慕仙森

如果将它们放在非它们的范围内,它们将以未定义形式出现。如果您真的想在$(document).ready(...)范围之外使用它们,则需要在外部声明它们。如:var foo;$(document).ready(function(){  foo = function()  {    alert('Bar');  }});foo(); // works now because it is in scope希望这可以帮助。
打开App,查看更多内容
随时随地看视频慕课网APP