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

我需要像下面这样使用JQuery:

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

有谁知道为什么这不适用于IE浏览器?

只是为了在这里得到正确的答案:

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

请注意,在FF和IE中,“焦点”事件在文档加载时触发,而在Chrome中,只有在窗口失去焦点并现在恢复之后才会触发。

我只是重复了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完全从服务器加载时触发并运行代码。

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

 $(window) 

在所有浏览器中都不起作用。

尝试

 $('body')