Jquery单击绑定第二次不起作用

我有一个奇怪的行为与内部的img标签。

我有一个带有表的php页面,这是一个记录列表。 在每一行的末尾,我都有一个删除行的按钮。

这是我的表的代码:

  

每个记录,主表的每一行都有上面的代码,彼此具有不同的id。

我的脚本代码是:

 $("#delete a").click(function(e) { e.preventDefault(); $('#action').val("delete"); $('#keyAction').val(this.id); $.ajax({ type: "POST", url: "processAttivita.php", data: $("#attivita_form").serialize(), error: function(msg) { $("#errore").html(msg); }, success: function(msg) { // display the errors returned by server side validation (if any) ricaricaLista(); } }); // end click delete event }); 

我试图删除第一行点击图像工作正常。 在第二个似乎jquery不绑定“click”事件并且元素的默认href发生,由于href属性中的“#”而保留在同一页面上。

任何想法为什么第二次jquery不拦截点击元素?

您正在使用ID选择器#delete a ,它只匹配一个(通常是第一个)元素。

尝试使用类,例如.delete a

你只得到一个元素的原因是因为JQuery优化了以#开头的任何选择器传递给document.getElementById ,它只返回1个元素。

这是一个如何使用事件委托来实现同样的事情的例子:

 $("#tableid").click(".delete a", function(e) { // your code }); 

你的html需要在你的桌子上有一个ID,并给你删除链接的容器class="delete"