为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼如林 2019-10-18 10:47:38
如果将它们放在document.ready()函数中,则函数的定义为未定义:$(document).ready(function(){  function foo()  {    alert('Bar');  }});foo(); // Undefined为什么会这样?我确定我只需要一些简单的理解即可:)
查看完整描述

3 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您可以,但是必须在ready()方法范围内调用它们,否则它们将在ready()方法退出时丢失范围。


例如,下面的代码将起作用:


$(document).ready(function(){

  function foo()

  {

    alert('Bar');

  }


  foo(); // still in the scope of the ready method

});


查看完整回答
反对 回复 2019-10-18
?
慕仙森

TA贡献1827条经验 获得超7个赞

如果将它们放在非它们的范围内,它们将以未定义形式出现。如果您真的想在$(document).ready(...)范围之外使用它们,则需要在外部声明它们。如:


var foo;


$(document).ready(function(){

  foo = function()

  {

    alert('Bar');

  }

});


foo(); // works now because it is in scope

希望这可以帮助。

查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 878 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信