jquery元素点击事件只允许一次?迷茫的
一个元素的点击事件,它只起作用一次。假设该值为 2,它将仅增加/减少/重置一次。
如何重置事件,以便用户可以继续单击元素来增加值 .item-selection-amount
$('.item-selection-amount').click(function(event) {
var amount = $(this).val();
switch (event.which) {
case 1:
//set new value +
$(this).val(amount + 1);
break;
case 2:
//set new value reset
$(this).val(0);
break;
case 3:
//set new value -
if(amount > 0){
$(this).val(amount - 1);
}
break;
}
});
谢谢
One a click event of an element, it only works once. Say the value is 2 it will increase/decrease/reset only once.
How to I reset the event so the user can keep clicking on the element increasing the value of the value .item-selection-amount
$('.item-selection-amount').click(function(event) {
var amount = $(this).val();
switch (event.which) {
case 1:
//set new value +
$(this).val(amount + 1);
break;
case 2:
//set new value reset
$(this).val(0);
break;
case 3:
//set new value -
if(amount > 0){
$(this).val(amount - 1);
}
break;
}
});
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JavaScript巧妙(阅读:这是一个坏主意)重载了
+
运算符来表示算术加法和字符串连接。如果其中一个操作数看起来像字符串,它将进行字符串连接。你的值看起来像一个字符串,所以它就是这样做的。
我已经使用
parseInt(val, 10)
来尝试获取整数,或者如果我们返回类似NaN
(不是数字)。parseInt()
的第二个参数是基数。如果没有这个,输入为072
的数字将以八进制(基数 8)格式读取,可能不是您想要的。jsFiddle。
更新
右键单击事件,
case 3
,在 Chrome 中不适用于我,因此我将其绑定到contextmenu
事件并且它起作用了...jsFiddle。
JavaScript cleverly (read: it was a bad idea) overloaded the
+
operator to mean arithmetic addition and string concatenation.If one of the operands looks like a string, it will do string concatenation. Your value looks like a string, so it does that.
I have used
parseInt(val, 10)
to try and get the integer, or get0
if we get back something likeNaN
(not a number). The second argument toparseInt()
is the radix. Without that, a number entered as072
will be read in octal (base 8) format and probably not what yo want.jsFiddle.
Update
The right click event,
case 3
, would not work for me with Chrome, so I binded it to thecontextmenu
event and it worked...jsFiddle.