Wenn ich die Frage richtig verstehe, ist das Problem das auf Firefox, das onchange
Der Handler wird nicht ausgeführt, wenn Sie die Maustaste nach unten drücken, wenn sich der Cursor auf der Taste des Schiebereglers befindet und die Maus verschiebt. Es wird erst ausgeführt, nachdem Sie die Maustaste nach einer solchen Bewegung veröffentlicht haben.
Dies scheint das richtige Verhalten zu sein (obwohl einige andere Browser nicht einhalten), da HTML5 CR über die sagt change
Veranstaltung: „Wenn das Element kein Aktivierungsverhalten definiert hat, sondern eine Benutzeroberfläche verwendet, die eine explizite Festungsmaßnahme beinhaltet, muss der Benutzer, wenn der Benutzer eine Änderung des Wertes oder der Liste der ausgewählten Dateien des Elements verpflichtet Feuer ein einfaches Ereignis, das sich im Eingabeelement ändern. “
Das ist etwas komplizierte Formulierung, aber es folgt ein klares Beispiel: „Ein drittes Beispiel für eine Benutzeroberfläche mit einer Commit -Aktion wäre eine Reichweite, die einen Schieberegler verwenden. Während der Benutzer den Knopf des Steuerelements zieht, würden Eingabeereignisse abgefeuert, wenn sich die Position änderte, während das Änderungsereignis nur abfeuern würde, wenn der Benutzer den Knopf losließ und sich zu einem bestimmten Wert verpflichte. “
Die Schlussfolgerung ist, dass Sie in diesem Fall die verwenden sollten oninput
Attribut statt von onchange
. In der Praxis, onmousemove
funktioniert auch, aber oninput
ist besser, da erwartet werden kann, dass es mit Eingabemethoden funktioniert, die keine Maus verwenden (was auch immer sie sein mögen, z. B. die Kontrolle durch Stimme).