JQuery,第一次单击窗口,下一个焦点

时间:2017-01-23 23:24:07

标签: jquery click window focus blur

我怎样才能首先调用函数点击,然后关注 jQuery中的窗口? 我试过了:

$(window).click(function(){
    console.log(1);
});

$(document).focus(function(){
    console.log(2);
});

$(document).blur(function(){
    console.log(3);
});

但是$(文档).focus和.blur不起作用

我拥有的代码,例如:

var isActive = false, wasClick = false;
$(window).click(function()
{
    if (!$(this).hasClass('button') && !$(this).hasClass('otherElement'))
    {
        isActive = false;
        wasClick = false;
        console.log('unactive varible');
    }
});

$(window).focus(function()
{
    if (wasClick) 
    {
        isActive = true;
        wasClick = false;
        console.log('focus');
    }
});

$(window).blur(function()
{
    if (isActive)
    {
        wasClick = true;
        isActive = false;
        console.log('blur');
    }
});

$('.button').click(function()
{
    isActive = true;
    console.log('button click');
});

我执行以下步骤:

  1. 点击按钮
  2. 我点击了Windows中的其他程序
  3. 我点击背景回到我的页面
  4. 输出控制台:

    button click
    blur
    focus
    unactive varible
    

    我想:

    button click
    blur
    unactive varible
    

1 个答案:

答案 0 :(得分:0)

据我所知,焦点事件在窗口对象上并不可靠(至少不是在所有浏览器中)。 你可以使用document.hasFocus()定期检查页面的焦点状态,但这不完全是你想要的,我猜想?