当我玩<input type="range">时,Firefox只有在我们将滑块拖放到Chrome和其他滑块被拖动时触发onchange事件的新位置时才会触发onchange事件。
如何在Firefox中进行拖拽?
function showVal(newVal){
document.getElementById(“valBox”).innerHTML=newVal;
}
<span id=“valBox”></span>
<输入类型=“范围” min=“5” max=“10” step=“1” onchange=“showVal(this.value)”>
我把这个作为一个答案,因为它应该是它自己的答案,而不是一个不那么有用的答案下的评论。我发现这种方法比公认的答案要好得多,因为它可以将所有的js与HTML保存在一个单独的文件中。
由Jamrelian在他的评论中提供的答案。
$("#myelement").on("input change", function() {
//do something
});
不过要注意Jaime的这句话
只是注意,有了这个解决方案,在chrome你会得到两个调用的处理程序(一个每个事件),所以如果你关心,那么你需要防范它。
它会在你停止移动鼠标时触发事件,然后在你释放鼠标按钮时再次触发事件。
更新
对于导致功能两次触发的更改事件和输入事件,这几乎不是问题。
如果函数在输入时触发,则在触发change事件时不太可能出现问题。
当你拖动范围输入滑块时,输入会迅速触发。担心最后再触发一个函数调用,就像担心输入事件中的一滴水。
甚至包括更改事件的原因是为了浏览器兼容性(主要是IE)。