退出弹窗+setInterval
Exit popup + setInterval
我正在尝试创建类似退出弹出窗口的内容,但仅限于在我的页面上停留时间少于 10 秒的用户。我想使用 setInterval:
var counter = 0;
var myInterval = setInterval(function () {
// count
console.log(counter);
// Clear if more than 10 seconds
if ( 10 < counter ) {
console.log('Stop setInterval');
clearInterval(myInterval);
}
++counter;
}, 1000);
if ( 10 > counter ) {
// Simplified exit popup function
$(window).mouseleave(function() {
console.log('Popup');
clearInterval(myInterval);
});
}
代码的第一部分有效,但即使计数器大于 10,第二部分也会执行。为什么这不能正常工作?
不需要计数器。仅 bind
页面加载时的事件,并在 X 秒后使用 setTimeout
:
unbind
$(window).bind('mouseleave', exitPopup);
setTimeout(function(){
$(window).unbind('mouseleave', exitPopup);
},10000);
function exitPopup(){
alert('Exit popup');
}
JS Fiddle Demo (3 seconds)
对于这个演示,请确保将光标放在右下角 window 开始,然后等待 3 秒。它不应该在那之后出现。如果您不等待,它会显示弹出窗口。
我正在尝试创建类似退出弹出窗口的内容,但仅限于在我的页面上停留时间少于 10 秒的用户。我想使用 setInterval:
var counter = 0;
var myInterval = setInterval(function () {
// count
console.log(counter);
// Clear if more than 10 seconds
if ( 10 < counter ) {
console.log('Stop setInterval');
clearInterval(myInterval);
}
++counter;
}, 1000);
if ( 10 > counter ) {
// Simplified exit popup function
$(window).mouseleave(function() {
console.log('Popup');
clearInterval(myInterval);
});
}
代码的第一部分有效,但即使计数器大于 10,第二部分也会执行。为什么这不能正常工作?
不需要计数器。仅 bind
页面加载时的事件,并在 X 秒后使用 setTimeout
:
unbind
$(window).bind('mouseleave', exitPopup);
setTimeout(function(){
$(window).unbind('mouseleave', exitPopup);
},10000);
function exitPopup(){
alert('Exit popup');
}
JS Fiddle Demo (3 seconds)
对于这个演示,请确保将光标放在右下角 window 开始,然后等待 3 秒。它不应该在那之后出现。如果您不等待,它会显示弹出窗口。