在我点击它外部后,我用这个问题隐藏了一个模式。
$(document).mouseup(function (e)
{
var container = $(".messenger");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
container.hide();
}
});
在评论中,有人正确地说你必须添加一些东西,否则你不能在隐藏一次后再次打开模式
记得使用 $("YOUR CONTAINER SELECTOR").unbind( 'click', clickDocument ); 就在 .hide() 旁边。所以文档不要一直监听点击。– 布拉索菲洛
所以我加了一行
$(document).mouseup(function (e)
{
var container = $(".messenger");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
container.hide();
container.unbind( 'click', clickDocument );//THE LINE I ADDED
}
});
但它不起作用。如果我再次单击该按钮,则模式不再出现。
JavaScript 新手。难道我做错了什么 ?
编辑
管理模式打开的脚本不是自定义的。我使用 hubspot Messenger:
所以我只写这段代码。
var msg;
msg = Messenger().post({
message: 'this si message inside modal',
hideAfter: 2500,
showCloseButton: true,
type: 'skip'
});