实际上我有一个更新enquery到这一步。
我喜欢这样:
$(document).ready(function() {
setInterval(doSmth, 10000);
function doSmth() {
var result = document.getElementById("fooText").value;
if (result != "") {
doSmthElse(result);
}
});
}
}
});
我需要激活间隔,即每10秒触发一次,以防只有文本控件具有焦点,否则什么也不做!
答案 0 :(得分:1)
您可以设置字段焦点的间隔,并在模糊处清除它:
var interval;
$(field).focus(function() {
interval = setInterval(doMsth, 10000);
});
$(field).blur(function() {
clearInterval(interval);
});
(interval
var必须是全局的)
答案 1 :(得分:1)
您的代码是:
$(document).ready(function() {
setInterval(function(){
var result = $("#fooText").val();
if (result != "") {
// if
} else {
// else
}
}, 10000);
答案 2 :(得分:1)
您可以通过两种方式实现此目的,
让计时器运行并在函数内部检查activeElement == <text input>
,然后执行其余的函数返回。
$(document).ready(function() {
setInterval(doSmth, 5000);
function doSmth() {
var resultEl = document.getElementById("fooText");
if (document.activeElement.id != resultEl.id) { return false; }
if (resultEl.value != "") {
doSmthElse(resultEl.value);
}
}
function doSmthElse(result) { alert(result);}
});
DEMO此处
将定时器设置在文本框的焦点上,然后删除输入框的定时器onblur。
$('#fooText').focus ( function () {
timer = setInterval(function() {
var textVal = $('#fooText').val();
if (textVal != '') {
doSmthElse(textVal );
}
}, 5000);
});
$('#fooText').blur (function () {
if (timer != '') clearInterval(timer);
});
DEMO此处