2012-11-11 76 views
1

當在<table>中插入<tr>時是否觸發了JavaScript事件?元素插入事件

或者,可以創建一個函數來處理元素,因爲它們被添加或更改了嗎?類似於jQuery live函數如何傳播某個父元素中現有元素和未來元素的點擊處理程序。

背景:我有一張表(jQuery DataTables),它在啓動時加載,然後在本地編輯(某些類可以添加或從中刪除)。問題是,我想根據其內容爲每行添加一個類。

+0

讓我們看看代碼。 – Sparky

+0

couldnt你只是鉤「添加行」按鈕到事件處理程序? – toxicate20

+0

同意@ toxicate20否則這只是一個非常糟糕的代碼架構 –

回答

3

您必須尋找這樣的事情:

DOMNodeInserted:當一個節點已經被添加爲 另一節點的孩子被解僱。此事件在插入 之後發送。這個事件的目標是被插入的節點。

使用它會去是這樣的:

$("table").addEventListener("DOMNodeInserted", function(event) { 
    alert("something has been inserted"); 
    console.log(event.target) 
}); 

(我沒有測試它,但它應該是要走的路)

我想補充如果你正在嘗試這樣做,那麼你的代碼中可能會有一些奇怪的東西。必須有一個更簡單的方法,可能會通過一個簡單的方法觸發事件?

+0

好的,最後我剛剛使用了'DataTables'特定的鉤子:我在創建'dataTable'時設置'fnServerData',以根據其內容將'DT_rowClass'應用於從服務器檢索的每一行。對於後來的本地更改,我只是在單個''元素上使用jQuery。 – Lou