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

Pea*_*ace 3 html javascript input rangeslider internet-explorer-11

这是我的 html 代码

<input type="range" name="que1" min="0" max="100" value="0" class="slider" id="myRange">
Run Code Online (Sandbox Code Playgroud)

它的 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)
Run Code Online (Sandbox Code Playgroud)

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

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

T.J*_*der 5

根据caniuse(请参阅“已知问题”),IE10 和 IE11 会在鼠标操作上触发change,而不是input。所以你需要处理change以及input。

slider.addEventListener('input', onChange)
slider.addEventListener('change', onChange) // For IE11
Run Code Online (Sandbox Code Playgroud)