【发布时间】:2020-04-12 06:06:05
【问题描述】:
单击页面上的通知图标后,我会弹出一个引导弹出窗口。它的部分功能是在单击弹出框后从弹出框中删除任何通知。这是带有三个通知的弹出框的图像,供参考:
但是,当我打开通知弹出框,然后单击任何通知时,第一次单击不会删除通知,但第二次会删除。点击监听器第一次和第二次触发(通过登录到控制台确认)。我检查了与我类似的其他问题,但没有一个问题适合我。我读了一些关于“焦点”的东西,但不明白它们的意思。也许这与它有关?
这是弹出框代码:
$(document).ready(function(){
$("#notificationsBell").popover({
'title' : $('.notifications-title-header').html(), // display:none so it doesn't show up in window
'html' : true,
'placement' : 'left',
'content' : $(".notifications-list").html() // display:none
});
});
这里是应该删除通知的点击监听器:
$('body').off("click").on("click", ".popover-body .notif-popup-container", function() {
var notifId = $(this).attr("id");
$('#' + notifId).remove();
})
我认为这与 popover 和 display:none 方面有关。这是因为我尝试在没有 display:none 和弹出框的情况下删除代码中其他地方的元素,并且它在第一次单击时起作用。任何见解都值得赞赏!
【问题讨论】:
-
你能用
unbind()替换off()并检查吗?我假设它是因为在较旧的 jquery 版本上。 -
不幸的是没有工作。
-
您是否要删除仅您点击的通知?,您能否放置一些 html 代码,一些 Minimal Reproducible Example 供我们处理..??
标签: javascript jquery html css twitter-bootstrap