如何使.mouseleave()函数触发一次

时间:2019-03-06 18:44:39

标签: jquery

我正在创建应该触发一次的退出弹出窗口。用户关闭弹出窗口后,再次出现.mouseleave()时,它将再次出现。这是我的功能:

    $('body').mouseleave(function () {
        $('#popup-container').css('display', 'grid');
        $('#popup-bg').fadeIn();
        Cookies.set('~plan-popup', true, {expires: 7, path: ''});
    });

我发现的每个帖子都说明了如何将.one().one("click", function()一起使用。我想将.one().mouseleave()一起使用,因此这些帖子无济于事。 (我意识到标题看起来很相似,但是在您标记为重复之前,请先阅读其他文章,它们不会回答我的问题。)

.one()的{​​{3}}对此无济于事。

如何使此.mouseleave()函数仅触发一次?

更正:我需要熟悉jQuery术语。我没有意识到.mouseleave()是一个“事件”。该文档实际上在这里进行了介绍:

  

.one( events [, data ], handler )
事件
  类型:字符串   包含一个或多个JavaScript事件类型的字符串,例如“ click”或“ submit”或自定义事件名称。

1 个答案:

答案 0 :(得分:1)

jQuery中的

mouseleave()只是on('mouseleave', ...)的包装。因此,要使用one()版本,该版本会在首次执行后自动将其删除,您只需要使用non-wrapper绑定即可。

$(selector).one('mouseleave', ...)