2012-05-14 68 views
0

我在我的網站上有一個計數器,當我的網站未聚焦時,我希望這會暫停。如果我使用模糊(某人離開焦點),並且有人點擊在新標籤中打開的鏈接,然後關閉該標籤,則焦點不會回到上一頁?爲什麼不起作用?有沒有更好的方法來做到這一點?jQuerys的「模糊」和「焦點」功能有沒有其他選擇?

$(document).blur(function(){ 
    pause=true; 
}); 

$(document).focus(function(){ 
    //alert("test"); 
    pause=false; 

    countdown(tmp,msg); 
}); 

回答

4

我認爲這是不附document,但window

$(window).focus(function(){...}); 
$(window).blur(function(){...}); 

,我總是遇到的有原生JS版本window.onfocuswindow.onblur。我想這些也在jQuery中使用/抽象。

+0

你說得對。例如,[MDN鏈接](https://developer.mozilla.org/en/DOM/window.onblur)。 – Sirko

+1

將事件附加到身體也應該工作我認爲 – malko

+0

,但即使我使用窗口..它關閉新標籤後沒有得到焦點?! – muenchnair

0

基本上,只有當用戶點擊或標籤進入頁面時,纔會獲得焦點,這就是焦點的工作原理。工作代碼如下: -

$(function() { 

    $(window).focus(function() { 
     alert("in"); 
    }); 
    $(window).blur(function() { 
     alert("out"); 
    }); 

}); 

你可以輸入/輸出事件添加窗口的鼠標,但是我不推薦這種觸摸裝置將不被支持,並使用多個屏幕將有問題的人。

你的問題更多的是一個軟件而不是JS問題。在這種情況下,你將受到瀏覽器的支配,儘管你回到你想要的選項卡,直到你點擊窗口本身,它仍然處於模糊狀態。

0

可以管理「點擊」外,點擊下方的代碼

$(document).click(function() { 
    //hide 
}); 
$(document).keyup(function(e) { 
    //manage tab event 
    if (e.target.id == "idName") { 
     //show 
    } else { 
     //hide 
    } 
}); 

$(#idName).bind('click', function(e) { 
    //show 
    e.stopPropagation(); 
});