0

在我点击它外部后,我用这个问题隐藏了一个模式。

$(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'
}); 
4

0 回答 0