是否确定混合在window.onload和$(函数(){}); jQuery在同一个脚本中?
<script type="text/javascript">
this.onload = function() {
// do something
}
$(function() {
//do something
});
</script>
是否确定混合在window.onload和$(函数(){}); jQuery在同一个脚本中?
<script type="text/javascript">
this.onload = function() {
// do something
}
$(function() {
//do something
});
</script>
它是完全可以接受的事你问:
// check when DOM is ready
$(function(){
// place code here
console.log('DOM ready');
});
// check when all images, links and assets have been loaded
window.load = function(){
// place code here
console.log('window loaded');
};
也可以做到这一点,以确保DOM是检查负载事件之前准备
// check when DOM is ready
$(function(){
// check when all images, links and assets have been loaded
$(window).on('load',function(){
// place code here
console.log('window loaded');
});
console.log('DOM ready');
});
或与本地JavaScript window.load事件
// check when DOM is ready
$(function(){
// check when all images, links and assets have been loaded
window.load = function(){
// place code here
console.log('window loaded');
};
console.log('DOM ready');
});
即使是JQuery API文档ready()也可以:http://api.jquery.com/ready/
你可以做到这一点,以确保DOM是检查window.load事件之前准备就绪。它可以放在yes外,但有时候由于不同的浏览器不一致以及其他脚本的加载。
它完全可以接受window.load事件进入ready函数,以保证window.load事件在DOM已准备就绪,而不是之前。
由于jQuery的准备功能,在某些情况下,有时会解雇所有图像已被加载之前。当ready()事件内部时,如果加载了所有图像,链接等,一旦ready处理程序运行,window.load事件将立即触发。
JQuery API文档提到了以下内容: .ready()方法通常与
属性不兼容。如果必须使用加载,请不要使用.ready()或使用jQuery的.load()方法将加载事件处理程序附加到窗口或更多特定项目,如图像 ...正文onload与window onload ? – DevjQuery load()事件从jQuery版本1.8开始被删除,不再使用,sibce会很快从jQuery core中移除。 http://api.jquery.com/load-event/ - 这就是为什么我使用上面的jQuery on()方法来绑定负载事件的负载手柄。正文onload是一个内联事件,它被附加到body标签..窗口事件实际上是DOM中的顶层,window.load通过窗口对象附加了一个加载事件..在我上面的示例中,您不需要使用body onload属性..它最好具有您的JavaScript外部比内联属性 –
我不知道你为什么会因为他们基本上做同样的事情,所以应该没有问题。
'$(document).ready'不会等待图像,'window.onload'(或'$(window).load')。我认为。 –
这工作,因为$(function() { // ... })
是$(document).ready()
短形式和DOM
后立即这一事件触发解析/准备好,但所有的资源后window.onload
大火已经被加载,包括所有的图像,所以$(function() { // ... })
将先火一次onload
事件将再次触发。
$(function() {
console.log('reday event'); // this will fire at first
});
this.onload = function() {
console.log('load event'); // this/second will fire after "ready" event
}
此外,请记住,window.onload
相当于jQuery
的load事件,即$(window).load(function() { // ... })
。
Check this example(两个事件一个接一个地发生,ready
然后onload
)。
你指的是window.onload = function() { };
所有图像都被加载后会被触发,等等
$(function() { });
或$(document).ready(function() { });
的DOM已成功创建之后就被触发,因此,当你可以肯定,你可以选择任何/特定的元素。
为什么这是必要的? –
他们是两个完全不同的东西,他们绝对可以混为一谈。你应该混合他们吗?这是一个意见,将取决于情况。我倾向于避免需要。 –
我尝试了一些代码在那里上网,利用在window.onload上再有就是它利用jQuery的$方法其他一些片段。所以我想知道如果我继续这样做类似的东西,那么它可能会导致任何问题的稳定与否。 – Dev