我正试图在离开浏览器时制作其中一个恼人的弹出窗口。但是,我希望在一段时间后该活动可用。应该允许事件在一定时间后触发。我已经看过诸如delay和setTimeout之类的东西,但我不知道如何在我的代码上实现它。
JavaScript的:
$(document).on("mouseleave", function (event) {
if (event.pageY < 0) {
$(".leavemodal").fadeIn(600);
}
});
答案 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>