我试图确定在提交3秒后窗口是否失去焦点。
目前我有这个:
$("input").on("submit",function(){
$(window).blur(function(){
console.log(a);
})
});
但是,无论您何时按提交,如果您在窗口外单击或最小化窗口console.log
触发a
。
这就是我想要实现的目标:
答案 0 :(得分:2)
试试这个:
$("#form").on("submit",function(){
var blurFunc = function() {
console.log(a);
}
$(window).blur(blurFunc);
setTimeout(function() { $(window).unbind('blur', blurFunc); }, 3000);
});
{3}之后,setTimeout
调用将从模糊事件中解除绑定,导致事件无法触发。
有关setTimeout
的更多信息,请参阅此处:http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
或者,您可以这样做:
$("#form").on("submit",function(){
var submitted = true;
var blurFunc = function() {
if(submitted) {
console.log(a);
}
}
$(window).blur(blurFunc);
setTimeout(function() { submitted = false; }, 3000);
});