2012-05-14 3 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.onfocus и window.onblur. Я полагаю, что они также используются/абстрагируются в jQuery.

+0

Вы правы. [MDN link] (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(); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^