使用JQuery绑定“窗口”的“焦点”和“模糊”功能,在IE中不起作用

时间:2009-09-11 02:24:46

标签: javascript jquery

我需要像以下一样使用JQuery:

var focusFlag = 1;
jQuery(window).bind("focus", function(event)
{
focusFlag = 1;
});

jQuery(window).bind("blur", function(event)
{
focusFlag = 0;
});

有谁知道为什么这对IEp不起作用>

3 个答案:

答案 0 :(得分:99)

在这里得到正确的答案:

$(function() {
    $(window).focus(function() {
        console.log('Focus');
    });

    $(window).blur(function() {
        console.log('Blur');
    });
});

请注意,在FF和IE中,“聚焦”事件会在〜文档加载时触发,而在Chrome中,只有在窗口失去焦点之前它才会触发,现在它已经重新获得它。

答案 1 :(得分:4)

我只是重复Shedal和roosteronacid所说的,在你将事件绑定到它之前你需要准备好DOM,否则在某些浏览器中计算机会说不,它会以无声的方式死掉。

为此,您可以使用roosteronacid解释的jQuery .ready()函数:

var focusFlag = 1;

jQuery(document).ready(function(){
    jQuery(window).bind("focus",function(event){
        focusFlag = 1;
    }).bind("blur", function(event){
        focusFlag = 0;
    });
});

它的作用是.ready()函数只会在DOM从服务器上完全加载时触发并运行其中的代码。

我所做的唯一真正的改变是我拥抱我的括号以便于阅读,但这是个人偏好。

答案 2 :(得分:3)

$(window)

不适用于所有浏览器。

尝试

$('body')