javascript - 将事件绑定(bind)到多个追加数据

标签 javascript php jquery html ajax

我正在使用 jQuery 将一些数据发布到 PHP 脚本,该脚本处理这些数据,然后附加回显的数据。现在,数据回显中还有一些 jQuery 脚本,只要您不向脚本发送两个数据实例,一切都可以正常工作。

说明:想象一下,我已将一些文本(假设为 A)发布到处理 PHP 脚本,然后该脚本将数据插入数据库并回显数据以及删除按钮;现在删除按钮工作正常(它删除和所有..),但如果我将另一段文本(比方说B)发布到处理器(无需在发布之间重新加载页面)并与删除按钮一起回显数据,仅第一个被删除,但第二个没有被删除。

代码表示

在不重新加载页面的情况下发布两个文本字符串(text1 和 text2),然后附加一个 div;它们每个都有删除按钮和文本,但单击事件仅附加到第一个删除按钮,无论我单击第二个删除按钮多少次,它都不会执行任何操作。

<div class="a">text1<div class="delete">X</div></div> // this one gets the click event 
<div class="b">text2<div class="delete">X</div></div> // this one doesn't

下面是使用的脚本(简化)

<script>
$(document).ready(function () { 
    $(".delete").click(function () {
         $(this).hide();
    });
});
</script>

注意:由于您在没有重新加载页面的情况下两次发布某些文本,因此上面的 JavaScript 会回显两次;重新加载页面时问题消失。

<小时/>

如需更多说明,请发表评论

最佳答案

由于您要动态创建元素,因此必须使用 .on() 来使用事件委托(delegate)

$(document).on('click','.delete',function() {
    $(this).hide()
});

此外,如果将 document 替换为 .delete 的静态父选择器,性能会更好

关于javascript - 将事件绑定(bind)到多个追加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23229875/

相关文章:

php - 发件人签名不匹配签名已过期

jQuery 可排序且可放置

javascript - 将值设置为输入 JQuery

javascript - 如何在重叠时改变两个圆圈的颜色?

javascript - 回溯历史后 Firefox 中的 Ajax 调用缓存

javascript - 未捕获的类型错误 : Cannot read property 'addPoint' of undefined ( Highstock live data)

php - Mysql:提取多表中未链接数据的最佳实践

php - 根据运输方式自定义 Woocommerce 新订单电子邮件通知

javascript - 自动刷新包含javascript的div

javascript - "|"(管道)运算符的功能是什么?