输入范围 slider 的 Javascript 代码在 Internet Explorer 11 中不起作用

标签 javascript html input internet-explorer-11 rangeslider

这是我的html代码

<input type="range" name="que1" min="0" max="100" value="0" class="slider" id="myRange">

它的javascript代码是

var slider = document.getElementById('myRange')

function onChange(event) {
  var x = event.target.value

  if (x == 0) {
    slider.className = ''
  } else if (x > 30 && x < 60) {
    slider.className = 'MyClass-1'
  } else if (x == 100) {
    slider.className = 'MyClass-2'
  }
}

slider.addEventListener('input', onChange)

当我拖动 slider 时,值会发生变化,但类不会根据值添加,它在 chrome 中完美运行,但在 Internet Explorer 11 中运行不佳。

有什么解决方案可以在 ie11 中实现吗?

最佳答案

根据 caniuse (参见“已知问题”),IE10 和 IE11 在鼠标操作时触发 change,而不是 input。因此,您需要处理 change 以及 input

slider.addEventListener('input', onChange)
slider.addEventListener('change', onChange) // For IE11

关于输入范围 slider 的 Javascript 代码在 Internet Explorer 11 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50887501/

相关文章:

java - 使用多个按钮创建弹出选项框

javascript - 将 React Ref 从父级传递给子级以获得 DOM 元素

javascript - 将两个 javascript 调用合并为一个涉及 GET 请求的调用

html - 当其他 li 设置为 inline-block 时,如何删除 ul 中第一个 li 元素的边距

css - 在移动 View 中仅缩小一张图像

javascript - 使用 jQuery 在提交时显示/隐藏表单

input - 将输入字符串分配并打印到变量。口齿不清

javascript - React-Leaflet 类型错误 : Cannot read property 'lat' of null

javascript - 如何在 Ubuntu 中恢复 npm 的默认全局路径?

html - 如何将填充计为 <a> 标记的一部分 (html/css)