2012-07-19 121 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