混合window.onload和$(function(){})是否可以;在同一个脚本中的jQuery?
<script type="text/javascript">
this.onload = function () {
// do something
}
$(function () {
//do something
});
</script>
答案 0 :(得分:0)
这将有效,因为$(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
的{{3}}事件,即$( window ).load(function() { // ... })
。
load,(两个事件一个接一个地开始,ready
然后onload
。)
答案 1 :(得分:0)
你指的是window.onload = function () { };
所有图片加载后会触发的等等。
$(function () { });
或$(document).ready(function () { });
,因此,当您可以确定可以选择任何/特定元素时。
答案 2 :(得分:0)
完成你的要求是完全可以接受的:
// 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');
});
或使用window.load事件的原生javascript
// 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 docs ready()也可以说:http://api.jquery.com/ready/
在检查window.load事件之前,您可以执行此操作以确保DOM已准备就绪。它可以放在yes之外,但有时由于浏览器的不一致性和其他脚本加载而导致。
完全可以接受window.load事件进入ready函数以保证window.load事件在DOM准备好之后而不是之前触发。
由于jQuery ready函数在某些情况下有时会在加载所有图像之前触发。当在ready()事件内部时,如果所有图像,链接等都已加载,则在运行就绪处理程序后,window.load事件将立即触发。
答案 3 :(得分:-1)
我不确定为什么你会这么做,所以应该没有问题。