[英]jQuery .focus() and .blur() not working in Chrome or Safari
[英]Why is $(document).blur() and $(document).focus() not working with Safari or Chrome?
我正在制作一个计数器,当文档处于焦点时会倒计时。 它在模糊时停止倒计时。
它在FF中工作,但使用Safari和Chrome,计数器根本不起作用。
Safari / Chrome是否存在兼容性问题?
我正在使用的是$(document).blur()
和$(document).focus()
,并且在$(document).ready()
块中都有。
var tm;
$(document).ready(function(){
var seconds = 50;
$('#timer').html(seconds);
countdown();
$(window).focus(function(){
function countdown(){
if (seconds > 0) {
seconds--;
$('#timer').text(seconds);
tm = setTimeout(countdown,1000);
}
if (seconds<=0){
$('#timer').text('Go');
}
});
$(window).blur(function(){
clearTimeout(tm);
seconds++;
$('#timer').text(seconds);
});
});
我总是使用$(window).focus()
和$(window).blur()
。 试试这些。
此外,请注意,在FF和IE中,“焦点”事件会触发〜文档加载,而在Chrome和Safari中,只有在窗口失去焦点之前才会触发,现在它已经重新获得了焦点。
UPD:现在,当您粘贴代码时,我将其重新设计为(希望)符合您的目的:
var tm;
var seconds = 50;
var inFocus = true;
function countdown() {
if (seconds > 0) {
seconds--;
}
if (seconds <= 0) {
$('#timer').text('Go');
}
else {
$('#timer').text(seconds);
tm = setTimeout(countdown, 1000);
}
}
$(function() {
$('#timer').html(seconds);
countdown();
$(window).focus(function() {
if(!inFocus) {
countdown();
}
});
$(window).blur(function() {
inFocus = false;
clearTimeout(tm);
seconds++;
$('#timer').text(seconds);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.