我的 HTML 中有这三个元素:
<button id="left" >Föregående</button>
<input id="animSlider" type="range" min="0" max="0" step="1" value="0" /> //THE MAX VALUE IS SET DYNAMICLY ON PAGE LOAD, I.E. NOT ZERO
<button id="right">Nästkommande</button>
控制输入 slider 的值是 jquery 中的这两个监听器/处理程序:
$('#left').click( function () {
document.getElementById("animSlider").value -= 1;
});
$('#right').click( function () {
document.getElementById("animSlider").value += 1;
});
由于某种原因,“前一个”(#left
) 的处理程序工作正常,它会将值减一。但是,“下一个”(#right
) 处理程序的值会这样增加:1,2, slider 中间, slider 末尾。我知道,我的代码中可能存在一些冲突,我没有发布,但我已经检查过,找不到任何连接。唯一涉及该值的地方是在这两个处理程序中!
所以我的问题是:在处理范围输入值时我是否遗漏了什么? JavaScript 中的 +=/-= 是否有所不同?这样使用 jQuery 和 JavaScript 会不会有冲突?
最佳答案
值是一个字符串
。将其转换为数字。否则它会增加为
0,01,011 ...
而不是 0,1,2..
。但是 -
减号会自动将字符串转换为数字,因为 string - string
没有意义。这就是为什么只有前一个按钮可以工作。Number(string);
将字符串隐藏为数字。您也可以使用 parseInt(string)
$('#right').click(function() {
document.getElementById("animSlider").value = Number(document.getElementById("animSlider").value)+1;
});
关于javascript - HTML Range输入增/减值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39963633/