Ho JSFiddle con una scatola ridimensionabile. Quando si fa doppio clic in un punto qualsiasi del documento, il colore della casella passa da beige a rosso.Perché viene visualizzata una voce nel gestore dblclick quando non è stato emesso il doppio clic?
Il problema è che a volte quando si rilascia il pulsante sinistro del mouse dopo il ridimensionamento della casella, viene generato un evento dblclick
e la casella diventa rossa. E a volte è possibile rilasciare il pulsante del mouse senza cambiare il colore della scatola, ma se si fa clic una sola volta nella casella si genera il dblclick
e si cambia il colore della scatola.
Di solito, tutto funziona correttamente: ridimensiono e non c'è la voce dblclick
. Devo provare forse 20 volte per ottenere un falso evento dblclick
.
Sto utilizzando Chrome.
È possibile risolvere parzialmente questa particolare istanza del problema aggiungendo codice al gestore dblclick
per ignorare la voce se è in corso un ridimensionamento. Ciò non risolve comunque la voce dblclick
, che accade (molto raramente) quando ridimensiono, non ottieni dblclick
, ma ottengo uno dblclik
quando faccio clic una volta sola nella casella.
Ma invece di far funzionare qui JSFiddle, quello che sto cercando qui è la ragione per cui viene generato questo dblclick
. Sto usando l'evento dblclick
in modo errato? C'è un bug noto con questo evento e forse una soluzione migliore? C'è qualche tipo di rimbalzo dell'interruttore in corso con il pulsante del mouse?
$(function() {
$("#box").resizable();
$(document).dblclick(function(e){
console.log("double-clicked on ", e.target);
$("#box").toggleClass("red");
});
});
Sono stato in grado di riprodurlo solo se ho fatto doppio clic quando il secondo clic è in fase di ridimensionamento e sto anche utilizzando Chrome. –
Questo errore di cui stai parlando non viene visualizzato. – Muath
Funziona bene su Mac (Safari, Firefox e Chrome). –