質問を正しく理解している場合、問題はFirefoxで、 onchange
カーソルがスライダーのボタンにあるときにマウスボタンを押してマウスを移動するときに、ハンドラーは実行されません。そのような移動後にマウスボタンを放出した後にのみ実行されます。
HTML5 CRが次のように述べているため、これは正しい動作のようです(他のブラウザも従いませんが) change
イベント: :「要素にアクティベーションの動作が定義されていないが、明示的なコミットアクションを伴うユーザーインターフェイスを使用する場合、ユーザーが選択したファイルの要素の値またはリストに変更をコミットするたびに、ユーザーエージェントはタスクをキューにしなければなりません。入力要素で変更という名前のバブルが発射します。」
これは少し複雑な定式化ですが、その後に明確な例が続きます。ユーザーがコントロールのノブをドラッグしている間、ポジションが変更されるたびに入力イベントが発生しますが、ユーザーがノブを手放し、特定の値にコミットしたときにのみ変更イベントが発生します。」
結論は、この場合、 oninput
の代わりに属性 onchange
. 。実際には、 onmousemove
うまくいきますが、 oninput
マウスを使用しない入力方法で動作することが期待できるため、より良いです(たとえば、音声ごとに制御する可能性があります)。