javascript - 退出弹出窗口+setInterval

标签 javascript jquery popup setinterval clearinterval

我正在尝试创建类似“退出弹出窗口”的内容,但仅限于在我的页面上停留时间少于 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)事件,然后使用setTimeout在X秒后取消绑定(bind)它:

$(window).bind('mouseleave', exitPopup);

setTimeout(function(){
    $(window).unbind('mouseleave', exitPopup);
},10000);

function exitPopup(){
    alert('Exit popup');
}

JS Fiddle Demo (3 seconds)

对于此演示,请确保在开始时将光标放在右下窗口中,并等待 3 秒钟。之后它不应该出现。如果您不等待,它将显示弹出窗口。

关于javascript - 退出弹出窗口+setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034551/

相关文章:

javascript - 有没有办法构建菜单结构并输出到 JSON 数据?

jquery - 自动向元素添加类

jquery - Flex Slider - 如何为两个 slider 添加相同的控件

javascript - 页面加载后弹出而不是按钮

javascript - 如何使用 Google Maps API 动态填充 heatMapData 数组并加载热图图层?

使用 Django 时出现 Javascript 验证错误

javascript - jQuery 兄弟/子选择器

javascript - 从谷歌地图解析 json 反向地理编码?

python - Kivy:弹出窗口未显示

javascript - 在javascript中检测浏览器窗口