2013-02-26 40 views
11

Tôi có một mạng lưới các hộp mà người dùng tương tác trên một trang web. Nếu họ nhấp vào một hộp, nó sẽ thay đổi màu sắc. Có khá nhiều hộp và tôi muốn nó ít tẻ nhạt, vì vậy nó sẽ được tốt đẹp để có các chức năng được: nếu nút chuột là xuống và bạn di chuột hộp, nó thay đổi tiểu bang. Có suy nghĩ gì không?Kiểm tra xem nút chuột có bị tắt trong khi di chuột không?

+0

Có một số câu trả lời tốt ở đây: http://stackoverflow.com/questions/2349764/jquery-is-mousedown-on-mouseover – MattDiamant

Trả lời

16

Bạn có thể sử dụng thuộc tính buttons trên sự kiện được chuyển đến cuộc gọi lại di chuột để kiểm tra xem các nút chuột nào đã được nhấn khi sự kiện được kích hoạt.

Ví dụ, để phát hiện xem nút trái được nhấn khi một phần tử được nhập với chuột, bạn có thể sử dụng:

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

Dưới đây là một minh chứng của ý tưởng này: http://jsfiddle.net/Ah6pw/

Giữ phím nút chuột trái và di chuyển chuột qua các mục danh sách khác nhau.

+2

Điều này chỉ hoạt động đối với IE. – Jonathan

+1

@ Jonathan đúng, nhưng nó sẽ hoạt động tốt trong các trình duyệt khác bằng cách sử dụng '.which' thay vì' .buttons'. – Oak

+0

@ Jonathan Tôi chưa thử nghiệm rộng rãi, nhưng điều này dường như cũng làm việc cho tôi trong Firefox. –

Các vấn đề liên quan