2013-11-14 2 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(); 
}); 

Здравствуйте, еще раз Stackoverflow!Отключить контекстное меню и меню rightclick

Для моего текущего проекта я хочу отключить правую и среднюю кнопку мыши на каждой ссылке. И при нажатии левой кнопкой мыши, если ссылка не содержит 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

Добавление инструкции 'if' с' e.which == '2'' не решило проблему в Google Chrome и Firefox. – Thew

Смежные вопросы