我从另一位开发人员那里获得了一个现有的项目,并且在代码中注意到他们正在三个不同的事件处理程序中执行js代码...
function pageLoad() {
//execute code
}
$(document).ready(function() {
//execute code
});
$(function() {
//execute code
});
我的问题是 - 他们都完全一样吗?或者至少是最后两个?我知道pageLoad是由.NET框架调用的,因此它不依赖于像后两个那样加载的jQuery库 - 这是我的理解 - 无论如何都是正确的吗?
答案 0 :(得分:19)
<强> $(文件)。就绪()强>
非常适合一次性初始化。
优化黑魔法;可能比pageLoad()稍早运行。
不会将功能重新附加到受部分回发影响的元素。
<强>页面加载()强>
如果与UpdatePanels一起使用,则不适合一次初始化。
在某些浏览器中略微优化,但一致。
非常适合将功能重新附加到UpdatePanels中的元素。
答案 1 :(得分:5)
pageLoad
和jQuery ready
处理程序都是完成类似事情的方法。
后两个例子是相同的。
http://encosia.com/document-ready-and-pageload-are-not-the-same/
答案 2 :(得分:3)
最后一个只是上面一个的简写符号。 http://www.jquery4u.com/dom-modification/types-document-ready/
答案 3 :(得分:0)
$(document).ready()
不会触发部分回发(发生在AJAX中)。在这种情况下,当您需要在页面从完整回发或部分加载时执行某些操作时,应使用MS AJAX
pageLoad函数。
Encosia网站上的文章很好读。
答案 4 :(得分:0)
$(document).ready(function() {
`enter code here`
//execute code
});
$(function() {
`enter code here`
});
两个函数以相同的方式执行任务,在文档准备好后在其中执行代码。
function pageLoad() {
`enter code here`
}
这在每次回发后执行,通常与更新面板控件一起使用,因为上述两个函数不会每次或每次回发都执行。
答案 5 :(得分:-3)
在这个网站中你会发现不同之处:)