我正在编写一个 jQuery 插件,它在按下按钮时操作输入字段的值。
到目前为止,我能够通过单击按钮来控制值,以及在用户按住按钮时不断增加它。简化后,脚本是这样的:
var element = $('#test-input');
var interval;
$('#test-up-button').on({
mousedown : function(e) {
element.val(parseInt(element.val()) + 1);
//Wait 400ms, than do the interval
interval = window.setInterval(function() {
element.val(parseInt(element.val()) + 1);
}, 200);
e.preventDefault();
},
mouseup : function() {
window.clearInterval(interval);
}
});
(你也可以在这里看到一个工作版本:http: //jsfiddle.net/Husar/Hxhsh/#base)
但是,正如您在评论中看到的那样,我还希望在 mousedown 事件发生时,在初始增加值后,将间隔函数延迟 400 毫秒,然后才执行。
因此,您按下按钮,值变为 + 1,您按住按钮一点,然后间隔开始滚动。