Привязка события к щелчку правой кнопкой мыши
Как я могу вызвать некоторые действия с правой кнопкой мыши после отключения контекстного меню браузера ?
Я попытался это . . .
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
$('.alert').fadeToggle();
return false;
});
});
8 ответов:
в jQuery нет встроенного обработчика событий oncontextmenu, но вы можете сделать что-то вроде этого:
$(document).ready(function(){ document.oncontextmenu = function() {return false;}; $(document).mousedown(function(e){ if( e.button == 2 ) { alert('Right mouse button!'); return false; } return true; }); });
в основном я отменяю событие oncontextmenu элемента DOM, чтобы отключить контекстное меню браузера, а затем я захватываю событие mousedown с помощью jQuery, и там вы можете узнать в аргументе события, какая кнопка была нажата.
вы можете попробовать приведенный выше пример здесь.
функция возвращается слишком рано. Я добавил комментарий к ниже код:
$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; $('.alert').fadeToggle(); // this line never gets called }); });
попробуйте поменять местами
return false;
на следующей строке.
просто используйте обработчик событий. Что-то вроде этого должно работать:
$('.js-my-element').bind('contextmenu', function(e) { e.preventDefault(); alert('The eventhandler will make sure, that the contextmenu dosn't appear.'); });
Я нашел этот ответ здесь и я использую его, как это.
код из моей библиотеки:
$.fn.customContextMenu = function(callBack){ $(this).each(function(){ $(this).bind("contextmenu",function(e){ e.preventDefault(); callBack(); }); }); }
код из скрипта мою страницу:
$("#newmagazine").customContextMenu(function(){ alert("some code"); });
document.oncontextmenu = function() {return false;}; //disable the browser context menu $('selector-name')[0].oncontextmenu = function(){} //set jquery element context menu
и
contextmenu
событие?Я хотел бы использовать
onmousedown
илиonclick
затем захватитеMouseEvent
' s свойство для определения, какая кнопка была нажата (0 = левая, 1 = средняя, 2 = правая).
чтобы отключить контекстное меню правой кнопкой мыши на всех изображениях страницы, просто сделайте это со следующим:
jQuery(document).ready(function(){ // Disable context menu on images by right clicking for(i=0;i<document.images.length;i++) { document.images[i].onmousedown = protect; } }); function protect (e) { //alert('Right mouse button not allowed!'); this.oncontextmenu = function() {return false;}; }