如何在文本控件具有焦点的情况下激活setInterval()
How to activate setInterval() incase a text control has the focus
实际上,我有一个关于这一点的更新查询。
我有这样的smth:
$(document).ready(function() {
setInterval(doSmth, 10000);
function doSmth() {
var result = document.getElementById("fooText").value;
if (result != "") {
doSmthElse(result);
}
});
}
}
});
我需要激活间隔,即每10秒触发一次,以防只有文本控件具有焦点,否则什么都不做!!
您的代码是:
$(document).ready(function() {
setInterval(function(){
var result = $("#fooText").val();
if (result != "") {
// if
} else {
// else
}
}, 10000);
您可以设置字段聚焦的间隔,并在模糊时清除:
var interval;
$(field).focus(function() {
interval = setInterval(doMsth, 10000);
});
$(field).blur(function() {
clearInterval(interval);
});
(interval
变量必须是全局的)
您可以通过两种方式实现这一点,
-
让计时器运行并在函数内部检查
activeElement == <text input>
是否存在,然后执行其余的函数else返回。$(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);} });
演示
-
将计时器设置在文本框的焦点上,并删除输入框的模糊计时器。
$('#fooText').focus ( function () { timer = setInterval(function() { var textVal = $('#fooText').val(); if (textVal != '') { doSmthElse(textVal ); } }, 5000); }); $('#fooText').blur (function () { if (timer != '') clearInterval(timer); });
此处演示
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 在不知道深度或父属性的情况下从对象中删除属性
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- 如何在不影响其他元素的情况下扩展DIV
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- 在没有clickevent的情况下从codeehind激活javascript函数
- 如何在默认情况下激活按钮
- 如何在文本控件具有焦点的情况下激活setInterval()
- 默认情况下,在方向的旅行模式下路由不激活
- 如何在默认情况下激活CodeMirror(高亮显示)中的代码颜色