簡體   English   中英

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

[英]Using JQuery to bind “focus” and “blur” functions for “window”, doesn't work in 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中,“Focus”事件會在〜文檔加載時觸發,而在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') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM