2013-02-26 12 views
11

Ich habe ein Gitter von Boxen, mit denen ein Benutzer auf einer Website interagiert. Wenn sie auf eine Box klicken, ändert sich die Farbe. Es gibt ziemlich viele Boxen und ich möchte, dass es weniger mühsam ist, also wäre es schön, die Funktionalität zu haben: Wenn die Maustaste gedrückt ist und man die Box schwebt, ändert sich der Status. Irgendwelche Gedanken?Überprüfen Sie, ob die Maustaste während des Schwebens gedrückt ist.

+0

Es gibt einige gute Antworten hier: http://stackoverflow.com/questions/2349764/jquery-is-mousedown-on-mouseover – MattDiamant

Antwort

16

Sie können die Eigenschaft buttons für das Ereignis verwenden, das an den Hover-Callback übergeben wurde, um zu überprüfen, welche Maustasten beim Auslösen des Ereignisses gedrückt wurden.

Zum Beispiel, um festzustellen, ob die linke Taste gedrückt wurde, wenn ein Element mit der Maus eingegeben wird, könnten Sie verwenden:

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

Hier ist eine Demonstration dieser Idee: http://jsfiddle.net/Ah6pw/

Halten Sie Klicken Sie mit der linken Maustaste und bewegen Sie die Maus durch verschiedene Listenelemente.

+2

Dies funktioniert nur für IE. – Jonathan

+1

@ Jonathan true, aber es wird in anderen Browsern gut funktionieren, indem '.which' anstelle von' .buttons' verwendet wird. – Oak

+0

@ Jonathan Ich habe nicht ausgiebig getestet, aber das scheint auch für mich in Firefox zu funktionieren. –

Verwandte Themen