要查找相应的输入元素,请使用$(this).siblings(".value")
.
为了跳过 0 到 100 之间的数字,我使用条件表达式。我将它封装成一个递减函数,因为在初始点击和自动重复计时器中都需要它。这对于增量操作不是必需的,因为它保证在重复发生时您将高于 100。
小提琴
function dec25(oldval) {
return oldval <= 100 ? 0 : oldval - 25;
}
$('.inc25').on({
mousedown : function(e) {
var element = $(this).siblings(".value");
var oldval = parseInt(element.val(), 10);
var newval = oldval == 0 ? 100 : oldval + 25;
element.val(newval);
timeout = window.setTimeout(function () {
interval = window.setInterval(function() {
element.val(parseInt(element.val(), 10) + 25);
}, 200);
}, 400);
e.preventDefault();
},
mouseup : function() {
window.clearTimeout(timeout);
window.clearInterval(interval);
}
});
$('.dec25').on({
mousedown : function(e) {
var element = $(this).siblings(".value");
element.val(dec25(parseInt(element.val(), 10)));
timeout = window.setTimeout(function () {
interval = window.setInterval(function() {
element.val(dec25(parseInt(element.val())));
}, 200);
}, 400);
e.preventDefault();
},
mouseup : function() {
window.clearTimeout(timeout);
window.clearInterval(interval);
}
});