按下按钮后不要触发Jquery事件

时间:2016-08-30 14:58:56

标签: javascript jquery html

所以我一直在尝试举办此活动,如果你将鼠标悬停在后退按钮附近,这个div会显示一条消息,说明"你要去哪里? :("。我已经开始工作,但过了一段时间,它变得很烦人。

HTML:

<div class="leaveModal dontgo">
    <h1>Where are you going? :(</h1>
    <div class="closebutton">
        <i class="fa fa-times fa-lg" aria-hidden="true"></i>
     </div>
</div>

JavaScript的:

$("body").on("mousemove",function(event){
    if (event.pageX < 100 && event.pageY < 50) {
        $(".dontgo").fadeIn(600);
    }
}

/* Close Button */

$(".fa-times").click(function(){
    $(".dontgo").fadeOut(500);
})

每当我按下关闭按钮它关闭,但它会继续触发事件。当我向后退按钮移动时,人们会感到非常恼火。

有人知道如何在按下关闭按钮一次后不触发jQuery事件吗?

2 个答案:

答案 0 :(得分:0)

单击按钮时关闭body侦听器怎么办?

$(".fa-times").click(function(){
    $("body").off("mousemove");  //Turn off the listener for body
    $(".dontgo").fadeOut(500);
})

编辑:对于此答案的评论中提及war10ck,上述代码段的$("body").off();部分将删除绑定到body的所有事件。我已经编辑了我的答案,而是说$("body").off("mousemove");,这将删除鼠标移动事件。

答案 1 :(得分:0)

$("body").off可能会损坏其他触发事件!因此,remove是可选的。

$(".fa-times").click(function(){
    $(".dontgo").fadeOut(500).remove();
})