【发布时间】:2020-07-25 10:16:33
【问题描述】:
我正在使用引导弹出框构建通知功能。用户单击通知后应将其删除,这很直观。然而,它需要两次点击才能使其工作——第一次,似乎什么都没有发生。通过 alert() 发现,单击侦听器会触发两次。
我已经在这个小提琴 js 中将我的问题简化为最基本的可重现形式: https://jsfiddle.net/ksun78/758n1azu/36/
$('body').on("click", ".popover-body .notif-popup-container", function() {
$("#" + $(this).attr("id")).remove();
})
将代码放在上面是因为它不会让我在没有代码 sn-p 的情况下提交,尽管小提琴 js 应该有你需要的一切。
有人能解释一下问题可能是什么以及如何解决吗?谢谢!
【问题讨论】:
-
那是因为弹出框复制了元素。并且 id 必须是唯一的。所以第一次它选择第一个,下一次它选择第二个。做
$("#" + $(this).attr("id"))没有多大意义,是吗? -
$("#" + $(this).attr("id")).remove();如果你知道某人的电话号码,你会打电话给他们询问他们的电话号码,然后再打电话给他们吗?您可以简单地执行$(this).remove();,它消除了“双击”问题。
标签: javascript jquery css twitter-bootstrap popover