As ek die vraag reg verstaan, is die probleem dat op Firefox, die onchange
Handler word nie uitgevoer as u die muisknoppie druk wanneer die muis op die knoppie van die skuifknoppie is en die muis skuif nie. Dit word eers uitgevoer nadat u die muisknoppie na so 'n skuif vrygestel het.
Dit blyk die regte gedrag te wees (hoewel sommige ander blaaiers nie daaraan voldoen nie), aangesien HTML5 CR oor die change
gebeurtenis: “As die element nie 'n aktiveringsgedrag het nie, maar 'n gebruikerskoppelvlak gebruik wat 'n eksplisiete verbintenisaksie behels, dan moet die gebruikersagent 'n verandering aan die waarde van die element of 'n lys van geselekteerde lêers doen, moet Vuur 'n eenvoudige gebeurtenis wat borrels met die naam verander by die invoerelement. ”
Dit is 'n bietjie ingewikkelde formulering, maar dit word gevolg deur 'n duidelike voorbeeld: ''n Derde voorbeeld van 'n gebruikerskoppelvlak met 'n verbintenis -aksie sou 'n reeks kontroles wees wat 'n skuifknop gebruik. Terwyl die gebruiker die knop van die kontrole sleep, sal die insetgebeurtenisse afvuur wanneer die posisie verander het, terwyl die veranderingsgebeurtenis slegs sou skiet as die gebruiker die knop loslaat en tot 'n spesifieke waarde verbind. ”
Die gevolgtrekking is dat u in hierdie geval die oninput
kenmerk in plaas van onchange
. In die praktyk, onmousemove
werk ook, maar oninput
is beter, want daar kan verwag word dat daar met invoermetodes werk wat nie 'n muis gebruik nie (wat hulle ook al mag wees, bv. Beheer volgens stem).