2013-01-14 53 views
1

我添加元素使用jQuery AJAX功能的頁面,如果成功我從服務器的響應,並將其分配到一個元素,像這樣:jQuery的。對()和阿賈克斯

$('#element').html(response); 

然後我需要jQuery來考慮新添加的元素。我的問題是,它是不是在DOM,所以我想用.on()的:

$(".remove").on("click", function(){ 
    alert($(this).text()); 
}); 

但是,這是行不通的。好吧,它確實有效,但只適用於頁面首先加載的元素,而不是新加載的元素。 .on()不應該考慮「新元素」?

PS實際上「單擊」事件只是爲了測試,我需要在mouseover上運行的函數,但截至目前,我正試圖瞭解如何使用通過AJAX添加的新DOM元素。

+0

您需要將更高級的事件處理程序委託給DOM樹。閱讀['.on()'文檔](http://api.jquery.com/on/)。 –

回答

1

委託它。 代表它。委託它。

$(document).on('click', '.remove', function(e){ 
    /* 
     do something when *any* `.remove` element is clicked 
     in the document, now and in the future. 
    */ 
}); 
+0

哦,非常感謝!我仍然沒有得到(當我閱讀文檔時沒有得到)代表做了什麼。我的意思是,我想我必須將偵聽器鏈接到我的'.remove' css類,然後設置事件('click'),並調用該函數。因此,由於'.on()'必須鏈接到文檔,委託會告訴DOM的哪個元素要查找? – ghego1

+0

@ ghego1你可以從任何**父元素(不一定是'document') – Neal