在ready()内,我可以添加函数吗?

时间:2010-09-30 14:05:31

标签: jquery

创建重复使用的函数时,是否可以在:

中创建一个函数
  $(document).ready(function () {
   });

代码块?

4 个答案:

答案 0 :(得分:11)

是的,但不能在那里 之外引用它们,例如:

$(document).ready(function () {
  function myFunc() { }
  $(".class").click(myFunc);
  //or myFunc();
});

有效,不会出现这种情况:

$(document).ready(function () {
  function myFunc() { }
});
myFunc();

或者更常见的内联问题,它不能通过作用域来访问函数:

<button onclick="myFunc()">Something</button>

答案 1 :(得分:3)

是的,但它只能在该范围内使用。

答案 2 :(得分:0)

语法

xy = function() {
}

始终创建一个全局可访问的函数(如果之前没有初始化变量)。但是你不应该在$(document).ready();内创建函数,因为不需要等待DOM加载函数。如果浏览器加载了完整的HTML,则在$(document).ready();中放置要执行的代码。

也许你的意思是“自己的范围”语法:

(function($) {
  /* code */
})(jQuery);

但也有:如果你想拥有全局函数,为什么要将它们放入本地范围? : - )

答案 3 :(得分:0)

是。甚至有一种方法可以在该块之外使用它:

var gs = {}
gs.func = function() {} // A dummy to avoid errors

$(document).ready(function () {
    gs.func = function() {...} // redefinition when the document is ready
});

这样,您可以在任何地方使用gs.func(),只有在页面加载后才会执行任何操作。