2012-07-09 45 views
5

Tôi đang cố gắng tìm cách tắt hành động mặc định của nút bánh xe chuột để mở liên kết trong tab mới.Làm thế nào để vô hiệu hóa nút bấm bánh xe chuột?

Điều đó có khả thi không?

+0

có, nó là possibru –

+2

Again s omeone người không tôn trọng các sự kiện chuột chuẩn -.- 'http://www.howtogeek.com/howto/internet/prevent-annoying-websites-from-messing-with-the-right-click-menu-in-firefox/ và http://www.pcworld.com/article/185288/bring_your_middle_mouse_button_to_life.html –

Trả lời

9

Bind a generic click event handler that specifically checks for middle clicks. Trong trình xử lý sự kiện đó, hãy gọi e.preventDefault():

$("#foo").on('click', function(e) { 
    if(e.which == 2) { 
     e.preventDefault(); 
    } 
}); 

Lưu ý rằng không phải tất cả trình duyệt đều hỗ trợ ngăn chặn hành động mặc định này. Đối với tôi, nó chỉ hoạt động trong Chrome. Firefox, Opera và IE9 tất cả đều không tăng sự kiện nhấp chuột với nhấp chuột giữa. Họ làm tăng mouseup và mousedown.

+4

Không hoạt động trong chrome http://jsbin.com/arulub/edit#javascript,html Không có trong firefox. Lưu ý rằng mã của bạn sai, '" click "' thậm chí không kích hoạt cho nút giữa/con lăn chuột. – Esailija

+3

không sử dụng 'live()'! – Christoph

+0

@Christoph: Rất tiếc, đã sao chép từ liên kết được đề xuất. Sửa chữa nó. –

2

Disable sự kiện bánh xe chuột bằng cách sử dụng JAVASCRIPT:

Trong IE:

document.attachEvent('onmousewheel', function(e){ 
    if (!e) var e = window.event; 
    e.returnValue = false; 
    e.cancelBubble = true; 
    return false; 
}, false); 

Trong Safari:

document.addEventListener('mousewheel', function(e){ 
    e.stopPropagation(); 
    e.preventDefault(); 
    e.cancelBubble = false; 
    return false; 
}, false); 

Trong Opera:

document.attachEvent('mousewheel', function(e){ 
    if (!e) var e = window.event; 
    e.returnValue = false; 
    e.cancelBubble = true; 
    return false; 
}, false); 

Trong Firefox:

document.addEventListener('DOMMouseScroll', function(e){ 
    e.stopPropagation(); 
    e.preventDefault(); 
    e.cancelBubble = false; 
    return false; 
}, false); 
+0

Nó không hoạt động trong Firefox. – Alvaro

5

này làm việc cho tôi ...

$(document).on("mousedown", "selector", function (ev) { 
    if (ev.which == 2) { 
     ev.preventDefault(); 
     alert("middle button"); 
     return false; 
    } 
}); 
+0

Xin lỗi vì đã thêm nhận xét không thêm vào trang bìa. Nhưng điều đó hoàn toàn tuyệt vời. –

1

Mã của tôi:

$(document).on('auxclick', 'a', function(e) { 
if (e.which === 2) { //middle Click 
    e.preventDefault(); 
    e.stopPropagation(); 
    e.stopImmediatePropagation(); 
    return false; 
} 
return true; 
Các vấn đề liên quan