javascript - 如何仅在输入元素具有焦点时才启动 setInterval?

标签 javascript jquery jquery-events

我在页面正文中有一个输入元素。我还创建了一个 setInterval 方法。现在我想要的是当我的页面打开的选项卡具有焦点(即$(window).foucs();),并且当我的鼠标光标是在输入字段内(即,我在输入字段内单击并且它在输入内),setInterval 应该开始。它应该一直持续到输入失去焦点,即光标不在输入内。

到目前为止,我已经试过了,但没有用:

$(document).ready(function(){
  $(window).focus(function(){
    if(("input").is(":focus")){
      var aa=setInterval(newFunc, 2000);
      function newFunc(){...........}
    }
  });
});

最佳答案

在输入元素的焦点和模糊处理程序之间的公共(public)范围内声明变量。

var aa;
$("input").focus(function(){
    aa = setInterval(newFunc, 2000);
  function newFunc() {
    ...
  }
})
$("input").blur(function(){
    clearInterval(aa);
})

希望对你有帮助

关于javascript - 如何仅在输入元素具有焦点时才启动 setInterval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774445/

相关文章:

javascript - 在 jQuery 可调整大小的对象中查看事件值

javascript - Jade 模板 - 动态调用 Mixin

javascript - 在 img 标签中显示 mjpeg 的替代方案(使用基本身份验证)

jquery - 仅从列表中获取我刚刚单击的元素并使用它

java - Struts ajax 404错误

TypeScript 单击事件处理程序

javascript - 从外部脚本文件附加事件监听器

javascript - mootools 太多的递归和谷歌地图

JavaScript 传递元素但接收窗口?

javascript - 当鼠标在 mousedown 和 mouseup 之间移动时如何使用 Javascript 捕获鼠标点击