在一段时间后使JQuery事件可用

时间:2016-09-02 09:37:54

标签: javascript jquery

我正试图在离开浏览器时制作其中一个恼人的弹出窗口。但是,我希望在一段时间后该活动可用。应该允许事件在一定时间后触发。我已经看过诸如delay和setTimeout之类的东西,但我不知道如何在我的代码上实现它。

JavaScript的:

$(document).on("mouseleave", function (event) {
        if (event.pageY < 0) {
            $(".leavemodal").fadeIn(600);
        }
    });

2 个答案:

答案 0 :(得分:2)

这未经过测试,但也许你可以尝试一下。

$(document).ready(function() {
    canRun = false;
    waitPeriod = 1000;// waiting time
    setTimeout(function() { canRun = true; }, waitPeriod);

    $(document).on("mouseleave", function (event) {
        if (!canRun) {
            return false;
        }
        if (event.pageY < 0) {
            $(".leavemodal").fadeIn(600);
        }
    });
});

答案 1 :(得分:0)

如果您想使用setTimeout(),可以执行以下操作。在您mouseleave元素后2秒钟,将允许点击事件。

var click = false;

$('.el').mouseleave(function() {
  if (click == false) {
    setTimeout(function() {
      console.log('You can click now')
      click = true;
      $(this).click(function() {
        console.log('click')
      })
    }, 2000)
  }
})
.el {
  width: 200px;
  height: 200px;
  background: black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="el"></div>