我有以下的jQuery代碼來創建表中的每一行的按鈕創建。刪除按鈕的單擊事件:按鈕通過jQuery不會觸發。點擊事件
$(".removeruleset").click(function(){
alert('inside');
id = $(this).closest('tr').attr('id');
alert(id);
});
將行添加到我的表的代碼以及刪除按鈕的作品。但是,當我點擊其中一個刪除按鈕時,它不會觸發點擊事件。
作爲一個測試,我創建了一個按鈕,像這樣,jQuery的以外:
<input type="button" class="removeruleset" value="push me">
,並觸發click事件沒有問題。 你能告訴我我要去哪裏嗎?
謝謝。
編輯1
我試着改變代碼看起來像這樣:
$(document).on("click", ".removeruleset", function(){
alert('inside');
id = $(this).closest('tr').attr('id');
alert(id);
});
但是,這使我有以下錯誤:
SCRIPT438:對象不支持財產或方法「上'
我正在使用版本1.5.2。
所以,我提到了在一些評論(Event binding on dynamically created elements?)中提到的文章,並嘗試這樣做,而不是:
$("body").delegate("click", ".removeruleset", function(e){
alert('inside');
id = $(this).closest('tr').attr('id');
alert(id);
});
這擺脫了錯誤消息,但事件處理程序依然沒有觸發 還嘗試過:
$("body").on("click", ".removeruleset", function(e){
alert('inside');
id = $(this).closest('tr').attr('id');
alert(id);
});
謝謝。
你需要做的事件委託,或創建的DOM元素後附加該事件。 – crush
這可能有幫助:http:// stackoverflow。com/a/17046190/1823841 –
它聞起來像巨大的複製.. – writeToBhuwan