2013-11-14 21 views
1
$(document).on('mousedown', 'a', function(event){ 
    event.preventDefault(); 

    if(event.which == 1){ 
     if($(this).attr('target') != '_blank'){ 
      loadpage($(this).attr('href')); 
     } 
    } 
}).on('contextmenu', 'a', function(event){ 
    event.preventDefault(); 
}); 

您好再次#1!禁用文本菜單和右鍵菜單

對於我目前的項目,我想禁用的每一個環節上的權利和鼠標中鍵。而當用鼠標左鍵點擊,如果該鏈接不包含target="_blank",我需要調用加載使用AJAX該頁面的功能。 (功能loadpage())。

這段代碼工作體面,雖然鼠標中鍵還是打開一個新的標籤。我該如何解決這個問題?

提前致謝!

+0

可能重複[如何禁用右鍵單擊上下文菜單JavaScript的(http://stackoverflow.com/questions/381795/how-to-disable-right-click-context-menu-in-javascript) – PlantTheIdea

+0

@PlantTheIdea我已閱讀該主題。這些答案沒有幫助我的問題。 – Thew

+1

九十年代這很酷,今天它只是一個遲緩的開發人員的煩人和偉大的證據! – adeneo

回答

2

在該事件處理程序,調用

e.preventDefault(): 

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

或:通過使用JavaScript 禁用鼠標滾輪事件:

In IE: 

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

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

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

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

添加具有'e.which ==「一個'if'聲明2''並沒有解決在谷歌Chrome和Firefox的問題。 – Thew