使用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')