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

How do I start setInterval only when input element has focus?

本文关键字:焦点 启动 setInterval 何仅 输入 元素      更新时间:2023-09-26

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

到目前为止,我已经尝试过这个,但它不起作用:

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

输入元素的焦点和模糊处理程序之间的公共作用域中声明变量。

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

希望有帮助

您可以使用:

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

或者要做到专注,将focus更改为focusout

请参阅:https://api.jquery.com/focus/和 https://api.jquery.com/focusout/