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

问题描述 投票:0回答:1

我正在创建一个应该触发一次的退出弹出窗口。用户关闭弹出窗口后,再次出现.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()所以这些帖子没有帮助。 (我意识到标题看起来很相似,但在你标记为重复之前请去阅读其他帖子,他们不回答我的问题。)

即使是jQuery documentation.one()对此也无济于事。

如何才能使这个.mouseleave()函数触发一次?

更正:我需要熟悉jQuery术语。我没有意识到.mouseleave()是一个“事件”。文档确实在这里解决了这个问题:

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

jquery
1个回答
1
投票

jQuery中的mouseleave()只是on('mouseleave', ...)的包装器。因此,要使用one()版本,它将在第一次执行后自动删除它,您只需要使用非包装器绑定。

$(selector).one('mouseleave', ...)
© www.soinside.com 2019 - 2024. All rights reserved.