我有一个按钮,可以将输入值增加或减少25
但是,我希望它跳过25,50,75步,所以它是0,100,125,150,...
我认为应该可以使用增量的if语句,但不确定如何以及在何处实现它。
我在解释代码方面也遇到了一些问题,因此我可以将它与多个输入字段一起使用。我已经尝试过e.target,event.target的组合,到目前为止还没有任何效果。
var element = $(this).siblings(':input');
var element = $(e.target).closest(".value");
这是我第一次使用jquery,而且标记让我感到困惑,所以任何帮助都会非常感激:)
答案 0 :(得分:0)
以100开始第一个增量的最简单方法。
increment = Math.max(100, increment + 25);
所以在你的代码中,这将是......
element.val(Math.max(100, parseInt(element.val(), 10) + 25));
您可以使用...
修复多字段问题var element = $(e.target).siblings(".value");
答案 1 :(得分:0)
要查找相应的输入元素,请使用$(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);
}
});
答案 2 :(得分:0)
递增是一个javascript问题,而不是jquery。我会这样处理增量:
value += 25;
if (value < 100)
value = 100;
并且像这样递减:
value -= 25;
if (value < 100)
value = 0;
有一些方法可以进一步压缩代码,但这可能是最好的可读性。
答案 3 :(得分:0)
看看这个
我只调整了增量功能。
相关代码:
$('.inc25').on({
mousedown : function() {
var element = $(this).parent().children(".value");
var v = parseInt(element.val());
element.val(v + (v>=100?25:100));
元素在mousedown处理程序中定义。
$(this)指向点击的元素
$(this).parent()指向父div
$(this).parent()。child(“。value”)潜入div“class”元素的元素
获取实际值并存储到变量 v
然后做你的数学/逻辑:增量v,多少?如果v> = 100则增加25,否则增加100。