0

我的网站上有一个计数器,我希望在我的网站不集中时暂停。如果我使用模糊(有人离开焦点)并且有人单击在新选项卡中打开的链接然后关闭选项卡,焦点不会回到上一页?为什么它不起作用?有更好的方法吗?

$(document).blur(function(){
    pause=true;
});

$(document).focus(function(){
    //alert("test");
    pause=false;

    countdown(tmp,msg);
});
4

3 回答 3

4

我认为它不依赖于document,而是window

$(window).focus(function(){...});
$(window).blur(function(){...});

我经常遇到的是原生 JS 版本window.onfocuswindow.onblur. 我想这些也在 jQuery 中使用/抽象。

于 2012-05-14T10:07:35.763 回答
0

可以通过“点击”和外部点击使用以下代码进行管理

$(document).click(function() {
    //hide
});
$(document).keyup(function(e) {
    //manage tab event 
    if (e.target.id == "idName") {
        //show
    } else {
        //hide
    }
});

$(#idName).bind('click', function(e) {
    //show 
    e.stopPropagation();
});
于 2017-09-11T09:11:56.397 回答
0

本质上,除非有人单击或进入页面,否则您不会获得焦点,这就是焦点的工作原理。下面的工作代码: -

 $(function() {

    $(window).focus(function() {
        alert("in");
    });
     $(window).blur(function() {
        alert("out");
    });

});

您可以添加窗口鼠标输入/输出事件,但我不建议这样做,因为不支持触摸设备并且使用多个屏幕的人会遇到问题。

您的问题更多是软件问题,而不是 JS 问题。在这种情况下,您将受到浏览器的支配,尽管您返回到您想要的选项卡,但您仍处于模糊状态,直到您单击窗口本身。

于 2016-07-04T11:29:27.457 回答