2013-02-26 14 views
11

Mam siatkę pól, z którymi użytkownik wchodzi w interakcje na stronie internetowej. Jeśli klikną pole, zmieni kolor. Jest sporo pudełek i chciałbym, żeby to było mniej uciążliwe, więc byłoby miło mieć taką funkcjonalność: jeśli przycisk myszy jest wyłączony i najedziesz na niego, zmieni stan. jakieś pomysły?Sprawdź, czy przycisk myszy nie działa podczas unoszenia?

+0

Jest kilka dobrych odpowiedzi tutaj: http://stackoverflow.com/questions/2349764/jquery-is-mousedown-on-mouseover – MattDiamant

Odpowiedz

16

Możesz użyć właściwości buttons na zdarzeniu przekazanym do wywołania zwrotnego na zawiasie, aby sprawdzić, które przyciski myszy zostały naciśnięte po wywołaniu zdarzenia.

Na przykład, aby wykryć, czy lewy przycisk został naciśnięty, gdy element jest wprowadzony za pomocą myszki, można użyć:

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

Oto demonstracja tego pomysłu: http://jsfiddle.net/Ah6pw/

Przytrzymaj lewy przycisk myszy i przesuwaj myszką po różnych elementach listy.

+2

To działa tylko w IE. – Jonathan

+1

@ Jonathan true, ale będzie działać dobrze w innych przeglądarkach, używając '.which' zamiast' .buttons'. – Oak

+0

@ Jonathan Nie testowałem intensywnie, ale wydaje mi się, że działa to również w Firefoksie. –