创建重复使用的函数时,是否可以在:
中创建一个函数 $(document).ready(function () {
});
代码块?
答案 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()
,只有在页面加载后才会执行任何操作。