2013-02-26 14 views
11

Ho una griglia di caselle con cui un utente interagisce su un sito web. Se fanno clic su una casella, cambia colore. Ci sono un sacco di scatole e mi piacerebbe che fosse meno noioso, quindi sarebbe bello avere la funzionalità: se il pulsante del mouse è premuto e si passa il mouse sulla casella, cambia stato. qualche idea?Controllare se il pulsante del mouse è premuto mentre si è in bilico?

+0

Ci sono alcune buone risposte qui: http://stackoverflow.com/questions/2349764/jquery-is-mousedown-on-mouseover – MattDiamant

risposta

16

È possibile utilizzare la proprietà buttons dell'evento passato al callback al passaggio del mouse per controllare quali pulsanti del mouse sono stati premuti quando è stato attivato l'evento.

Ad esempio, per rilevare se il tasto sinistro è stato premuto quando un elemento è inserito con il mouse, è possibile utilizzare:

myElement.addEventListener("mouseover", function(e){ 
    if(e.buttons == 1 || e.buttons == 3){ 
     //do some stuff 
    } 
}) 

Ecco una dimostrazione di questa idea: http://jsfiddle.net/Ah6pw/

Tenere premuto il tasto sinistro del mouse e muovi il mouse tra le varie voci dell'elenco.

+2

Questo funziona solo per IE. – Jonathan

+1

@Jonathan true, ma funzionerà bene in altri browser usando '.which' anziché' .buttons'. – Oak

+0

@ Jonathan Non ho provato molto, ma sembra funzionare anche per me in Firefox. –

Problemi correlati