2017-01-06 30 views
1

我有一個SVG對象在我的HTML的身體如何在v1.6(引入「on」之前)在'load'上執行jQuery?

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

我已經試過當對象加載發射功能的幾種不同的方法。在對象元素上使用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"); 
}); 

我已經警告過關於混合原生javascript事件處理程序與jquery,但我不知道爲什麼。我有什麼理由不應該使用上面的方法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

謝謝拉斐爾,我一直在使用代表'hover','mouseenter','mousemove'和'mouseleave'事件,但顯然這對於​​load事件不起作用,因爲它們不會「冒泡」。 – Josh

相關問題