2012-03-09 78 views
1

我在jQuery中創建了一個元素.append。當元素存在時,我想要執行一個函數。創建元素生成後觸發的函數

我發現在運行append命令後,該元素不存在。那麼如何讓它在存在時執行呢?

+2

不是這樣,'.append()'立即發生,元素可以立即訪問。 – 2012-03-09 20:01:03

+0

需要發佈代碼...如果你追加,然後調用函數,它會發現元素,如果它存在 – charlietfl 2012-03-09 20:01:41

+0

*「......元素成立後*」和元素出生;-) – 2012-03-09 20:13:59

回答

2

您可以綁定到DOMNodeInserted事件,但是當你做到這一點要知道,你失去了IE8的支持和老年人:

$(document).on('DOMNodeInserted', '.my-element-class', function() { 
    $(this).css({ backgroundColor : 'red' }); 
}); 

下面是事件的MDN文檔,看「突變事件」下:https://developer.mozilla.org/en/DOM/DOM_event_reference

雖然,元素確實存在你把它添加到DOM後,所以你可能想選擇不正確的是:

$('body').append('<div>My New Div!</div>').children().last().css({ backgroundColor : 'red' }); 

下面是一個演示顯示,你可以選擇一個元素,你將它添加到DOM後直接:http://jsfiddle.net/AH6RG/

請注意,此代碼使用的事實,.append()增加了新的元素,因爲它的加入容器中的最後一個子至。所以你可以通過選擇容器的孩子來選擇它,然後選擇最後一個孩子。