每0.2秒运行一次mousedown事件,直到鼠标向上

Mav*_*ick 1 javascript jquery mouseevent settimeout

我试图在用户单击按钮时连续向文本输入字段的值添加+1.

简化,我的JQuery代码是这样的:

$('#button').on({
 mousedown : function () {
 var value = $(this).val();
 $(this).val(value + 1);
 },
 mouseup : function () {
 //Some other stuff here
 }
});
Run Code Online (Sandbox Code Playgroud)

每次用户单击按钮时都可以使用此功能.我想要的是如果用户按下按钮,则mousedown事件每隔0.2秒触发一次,直到他停止按下(并且鼠标事件触发).

我认为这应该以某种方式用setTimeout()完成,但如果有人告诉我如何,我会很高兴.谢谢.

Guf*_*ffa 10

使用setIntervalclearInterval:

var interval;
$('#button').on({
  mousedown : function () {
    var el = $(this);
    el.val(parseInt(el.val(), 10) + 1);
    interval = window.setInterval(function(){
      el.val(parseInt(el.val(), 10) + 1);
    }, 200);
  },
  mouseup : function () {
    window.clearInterval(interval);
  }
});
Run Code Online (Sandbox Code Playgroud)

但是,不可能每0.2毫秒运行一次,我想你的意思是每0.2秒......