输入范围滑块的Javascript代码无法在Internet Explorer 11中使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入范围滑块的Javascript代码无法在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)

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

任何解决方案都可以在ie11中实现

答案

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

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

以上是关于输入范围滑块的Javascript代码无法在Internet Explorer 11中使用的主要内容,如果未能解决你的问题,请参考以下文章

在 Qualtrics 调查中,如何使用 JavaScript 动态设置滑块的范围?

带有滑块的 GRC QT GUI 范围出现错误

带有 x 范围滑块的 Y 轴自动缩放

如何使范围滑块的左侧与滑块右侧的颜色不同?

是否可以根据其他表单的输入来更改 HTML5 范围滑块的最小值和最大值?

angularjs输入范围写在交叉气泡内