2012-02-01 10 views
0

私はsizzleの例を使っています。最後にコードの最後にwindow.onloadがあります。jQueryのwindow.onload

これはどういう意味ですか?

私のコードは次のようである:

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

答えて

2

これは、ウィンドウのロード時にfunction initが実行されることを意味します。

6

これは、ドキュメントのonloadイベントを処理するようにinit関数を設定していることを意味します。 init関数は、ページ内のすべてのコンテンツが読み込まれたときに呼び出されます。

jQueryを使用しているので、代わりにjQueryイベントを使用する必要があります。 DOMイベントは(あなたがチェーンにハンドラをコードを書く場合を除き)1つのハンドラを持つことができますが、jQueryのイベントは、複数のハンドラを持つことができます。

$(document).load(init); 

あなたがonloadイベントを使用するページに複数のスクリプトを使用している場合一方は他方を置き換える。 jQueryイベントを使用しても、DOMイベントをフックするスクリプトがthis questionのようにjQueryイベントハンドラーを引き継ぎます。すべてのスクリプトでjQueryイベントを使用することでそれが解決されます。

+0

なぜdownvote?答えに間違っていると思われることを説明していない場合は、それを改善することはできません。 – Guffa

+0

window.onload≠document.onload。 OPはwindow.onload()が何をしているのかを知りたいので、document.onloadを使用するように指示します。どうして? – mkoistinen

+0

クレイジーなことは、あなたはすでにこれを知っている! http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready – mkoistinen

関連する問題