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

Javascript code for Input range slider not working in internet explorer 11

这是我的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)

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

有什么解决办法可以在ie11中实现吗??

根据 caniuse(参见 "Known issues"),IE10 和 IE11 在鼠标操作时触发 change,而不是 input。所以你需要处理 change 以及 input.

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