我需要像以下一样使用JQuery:
var focusFlag = 1;
jQuery(window).bind("focus", function(event)
{
focusFlag = 1;
});
jQuery(window).bind("blur", function(event)
{
focusFlag = 0;
});
有谁知道为什么这对IEp不起作用>
答案 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')