javascript - HTML Range输入增/减值问题

标签 javascript jquery html

我的 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 会不会有冲突?

最佳答案

Demo

值是一个字符串。将其转换为数字。否则它会增加为 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/

相关文章:

jquery - 在 jQuery 中测试下一个元素

html - CSS - 如何水平对齐我的 div?

php - 如何将我的 Javascript 对象传递给 php

javascript - 未捕获的类型错误 : Failed to execute 'createObjectURL' on 'URL' : No function was found that matched the signature provided

javascript - 将 JSON 提取到 Javascript 变量中

jquery - 客户端JSON反序列化无法解析json字符串

javascript - 防止node-oracledb中的SQL注入(inject)

javascript - 通过 javascript 传递变量但在 php 中未获取它?

html - colgroup 背景颜色不会覆盖 tr 背景颜色

jquery - 在 onclick 事件中传递参数时转义撇号