2017-01-06 4 views
1

私は、オブジェクトが読み込まれたときに関数を焼成するいくつかの異なる方法を試してみた私のHTMLv1.6の「読み込み」でjQueryを実行する方法(「on」が導入される前に)?

<object id="svg-map" type="image/svg+xml" data="documents/map.svg">Your browser does not support SVGs</object> 

のボディにSVGオブジェクトを持っています。オブジェクト要素にonload属性を使用すると動作します(yuck!)。 JS addEventListenerを使用すると動作します。しかし、ロード時にjQueryを使用しても動作しません。

//Method 2: FAIL (v1.6) 
$("#svg-map").on("load", function() { 
    alert("loaded2"); 
}); 
//Method 3: FAIL (v1.6) 
$("#svg-map").load(function() { 
    alert("loaded3"); 
}); 
//Method 4: SUCCESS 
$("#svg-map")[0].addEventListener("load", function() { 
    alert("loaded4"); 
}); 

jqueryでネイティブのJavaScriptイベントハンドラを混在させることについて警告されていますが、その理由はわかりません。上記の方法4を使用すべきではない理由はありますか?

バージョン1.6のjQueryでこれを行う方法はありますか?

+0

そのリンクはあなたの問題を説明しません。子にあるイベントハンドラが伝播を取り消さない場合、その親のイベントハンドラ(適切な型の)が次に起動されるということだけです。そして、すべての先祖を通って。 –

+0

ああ、ありがとう!さらなるコメントを避けるために質問から削除されました。 – Josh

+0

'.load()'を試してみましたか?http://api.jquery.com/load-event/ – chiliNUT

答えて

0

.onにジャンプする前に.bindと.delegateを使用して覚えています。 試しましたか?

.bind("load", function() { .delegate("load", function() {

+0

Raphael、ありがとう'hover'、' mouseenter'、 'mousemove'と' mouseleave'イベントのデリゲートですが、 ''バブル ''イベントは ''バブル ''を起こさないので動作しません。 – Josh

関連する問題