In HTML5 INPUT type='number'
l'utente può modificare il valore facendo clic sulle frecce su/giù che fanno parte della casella INPUT. L'utente potrebbe anche fare clic nella casella per mettere a fuoco o per modificarne il contenuto.HTML5 INPUT type = 'number' - distingue tra focus e value-change click del mouse
C'è un modo semplice per distinguere tra queste due attività nel trigger click
?
dalla risposta di @cvsguimaraes, che dimostra meglio la teoria.
utilizzando la sua metodologia, ecco la mia versione completa (?). lo scopo: accertarsi che vengano chiamati i normali trigger change
quando si utilizza +/- per modificare i dati.
// input/mouseup triggers to call change from +/- mouse clicks
// want to wait 500ms before calling change in case successive clicks
render.inputCh = false;
render.inputCt = 0;
render.inputFn = function(e) {
render.inputCh = true;
}
render.mouseupFn = function(e) {
if(render.inputCh) {
render.inputCh = false;
render.inputCt++;
setTimeout(next, 500);
}
function next() {
render.inputCt--;
if(render.inputCt) return;
var change = document.createEvent("Event");
change.initEvent('change',true,true);
e.target.dispatchEvent(change);
}
}
// using input/mouseup triggers
document.getElementById('number').addListener('input',render.inputFn,true);
document.getElementById('number').addListener('mouseup',render.mouseuptFn,true);
// normal change trigger - will be called normally and via +/- mouse click
document.getElementById('number').addListener('change',changeFn,false);
su Chrome che sta funzionando senza problemi finora tranne che quando si rimuove attenzione dalla voce grilletto change
entreranno in gioco di nuovo. Ho risolto questo problema con un trigger a basso livello che interrompe la propagazione se la precedente chiamata di cambiamento proveniva dallo mouseup
.
arent del mouse {giù, su} stampa e Stampa Eventi, piuttosto che i click migliori quelli/basso? – fbstj
Non risponderò, perché non lo sapevo da me stesso; ma questo sembra un vero modo convoluto per dire "non usare clic, usa invece input". –
@FallingBullets yah, ma pluss l'evento oninput – cvsguimaraes