2010-08-16 54 views

回答

2

我猜你最好的照片是load那裏的事件。

$('element').load(function(){ 
    alert('loaded'); 
}); 

本地

var elem = document.getElementById('element_id'); 
elem.onload = function(){ 
    alert('loaded'); 
}; 

動態地創建又如:

$('<img/>', { 
    src: '/images/myimage.png', 
    load: function(){ 
    alert('image loaded'); 
    } 
}).appendTo(document.body); 
+0

問題是我無法編輯父項。 – Artusamak 2010-08-16 16:37:21

0

如果你希望能夠到的代碼片段分開創建的項目,並加載事件處理你可以嘗試使您的動態創建的元素在窗口上觸發自定義事件:

var myElement = $('<img/>', { 
    src: '/images/myimage.png' 
}).appendTo(document.body); 

$(window).trigger({type: "myElementInit", myObject : myElement}); 

通過在額外參數中指向自己的指針,您可以在jQuery(document).ready中有一個單獨的處理程序設置,以查找「myElementInit」窗口事件並獲取元素的引用額外的參數:

jQuery.('window').bind("myElementInit", function(event){ 
    var theElement = event.myObject; 
... 
}); 
+0

如前所述,我的問題是我無法編輯父項。 – Artusamak 2010-08-16 16:38:20

+0

不確定我明白了。你可以發佈一些代碼片段嗎?你是什​​麼意思「我從live()聽到」? – 2010-08-18 16:15:21

+0

我無法發佈一些代碼。 1 /我有一個腳本,我無法修改在文檔準備好時在dom中添加div。 2 /我有我的腳本是在dom中添加一個其他div,並且需要在1 /創建的div後創建的腳本已經真正添加到DOM中 這很清楚嗎? – Artusamak 2010-08-20 19:04:07

0

可以使用.on()事件的授權形式,如documented here

委託事件有優勢,他們可以處理來自 子孫元素事件稍後添加到文檔中。通過挑選在連接了委託事件處理程序時保證出現的元素,可以將委派事件用於 ,從而避免需要頻繁地附加和刪除事件處理程序。這個 元素可以是模型 - 視圖 - 控制器設計中的視圖的容器元素,例如,如果事件 處理程序想要監視文檔中的所有冒泡事件,則該元素可以是documentdocument元素在 加載任何其他HTML之前在文檔的頭部可用,因此在沒有 等待文檔準備就緒的情況下附加事件是安全的。

相關問題