2012-02-01 51 views
0

我使用滋滋的例子,在那里我得到了在最后的代码的window.onload。在window.onload jQuery中

这是什么意思。

我的代码是这样的:

var init = function() { 
    var trail = Sizzle; 
    var foo = trail('.foo'); 
    foo[0].onmouseover = function() { 
     this.style.backgroundColor = (this.style.backgroundColor.indexOf('blue') === 0) ? 'yellow' : 'blue'; 
    }; 
    foo[1].onmouseover = function() { 
     this.style.backgroundColor = (this.style.backgroundColor.indexOf('red') === 0) ? 'yellow' : 'red'; 
     jQuery(foo[1]).after("<b>Hello</b>"); 
    } 
    foo[2].onmouseover = function() { 
     this.style.backgroundColor = (this.style.backgroundColor.indexOf('green') === 0) ? 'yellow' : 'green'; 
     jQuery(foo[3]).toggle("slow"); 
     jQuery('b').remove(); 
    } 
}; 
window.onload = init; 

这是什么意思?

+2

函数init()只在窗口(页面)加载完成后才开始工作。 – Narek 2012-02-01 12:27:21

回答

2

这意味着在窗的负载的function init将被执行。

6

这意味着您正在设置init函数来处理文档的onload事件。当页的所有内容加载的init函数将被调用。

当你正在使用jQuery,你应该使用jQuery的事件,而不是。在DOM事件只能有一个处理程序(除非你写的代码链中的处理程序),但jQuery的事件可以有多个处理程序:

$(document).load(init); 

如果你有在页面超过一个脚本,使用onload事件,一个将取代另一个。即使您使用jQuery事件,挂接DOM事件的脚本也会接管jQuery事件处理程序,如this question。在所有脚本中使用jQuery事件解决了这个问题。

+0

为什么downvote?如果你不解释你认为答案是错误的,它不能改进它。 – Guffa 2013-02-24 15:56:22

+0

window.onload≠document.onload。 OP想知道window.onload()做了什么,并告诉他使用document.onload。为什么? – mkoistinen 2013-02-24 15:57:21

+0

疯狂的事情是,你已经知道这一点! http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready – mkoistinen 2013-02-24 16:06:09