2012-07-19 122 views
1

我一直在尋找如何做到這一點,我見過很多選項(其中大部分已被棄用),但沒有我嘗試過的工作。jQuery事件上動態添加的元素沒有射擊

我有一個文件上傳腳本,動態添加表格行,一個<td>有一些<button>元素,我需要點擊一些Ajax工作,但我似乎無法讓它做任何事情。

這裏的<td>包含被添加到DOM按鈕:

<td class="filedelete"> 
    <button class="btn btn-danger delete"> 
     <i class="icon-trash icon-white"></i> Delete 
    </button> 
</td> 

這是jQuery的,我想現在:

$(".delete").on("click", function(event){ 
    console.log("clicked"); 
}); 

.on什麼,我應該使用?我究竟做錯了什麼?

+0

是的,你應該'.on',但也閱讀[文檔](http://api.jquery.com/on/#direct-and-delegated-events) – Esailija 2012-07-19 16:12:07

+0

我不知道,但我不' t認爲元素在語義上可以有一個類。 – Sablefoste 2012-07-19 16:12:29

+0

i元素首先不是語義 – Esailija 2012-07-19 16:13:43

回答

2

修改代碼,以便將事件處理程序綁定到一個包含元素(也許是父母<table>或其他包含元素是靜態的)這樣的:

$("#containing_element").on("click", ".delete", function(event){ 
    console.log("clicked"); 
}); 

click事件從.delete會再泡觸發並且被容納元件捕獲。

+0

仍然沒有運氣,我嘗試使用表ID以及td類並且都不工作 – Motive 2012-07-19 16:18:57

+0

@ MotiveKyle:表格本身是動態插入的嗎? – 2012-07-19 16:19:44

+0

啊,我的壞,它是動態添加,只是在不同的點,我會嘗試另一個元素 – Motive 2012-07-19 16:20:42