如果我正确理解这个问题,问题是在Firefox上 onchange
当您按下光标在滑块的按钮上并移动鼠标时,请按下鼠标按钮时执行处理程序。仅在此移动后释放鼠标按钮后才执行。
这似乎是正确的行为(尽管其他一些浏览器不遵守),因为HTML5 CR说了 change
事件: :“如果该元素没有定义激活行为,而是使用涉及显式提交操作的用户界面,那么任何时候用户对元素的值进行更改或所选文件的列表进行更改,则用户代理必须将任务排队点燃一个简单的事件,该事件在输入元素处燃烧起来更改。”
这有点复杂,但随后是一个澄清的示例:“使用提交操作的用户界面的第三个示例将是使用滑块的范围控件。当用户拖动控件的旋钮时,只要位置更改,输入事件就会发射,而更改事件只有在用户放开旋钮并承诺特定值时会发射。”
结论是,在这种情况下,您应该使用 oninput
属性而不是 onchange
. 。在实践中, onmousemove
也有效,但是 oninput
更好,因为可以期望它使用不使用鼠标的输入方法(无论是无论是语音而言,例如控制)。