Привязать событие к щелчку правой кнопкой мыши

Как я могу вызвать некоторые действия с помощью правого клика после отключения контекстного меню браузера?

Я пробовал это.,.

$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
        $('.alert').fadeToggle();
        return false;
    });
});

Ответ 1

В 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, и там вы можете узнать в аргументе события, какая кнопка была нажата.

Вы можете попробовать приведенный выше пример здесь.

Ответ 2

Функция возвращается слишком рано. Я добавил комментарий к приведенному ниже коду:

$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
        return false;
        $('.alert').fadeToggle(); // this line never gets called
    });
});

Попробуйте заменить return false; на следующую строку.

Ответ 3

Просто используйте обработчик событий. Что-то вроде этого должно работать:

$('.js-my-element').bind('contextmenu', function(e) {
     e.preventDefault();
     alert('The eventhandler will make sure, that the contextmenu dosn't appear.');
});

Ответ 4

Я нашел здесь этот ответ, и я использую его вот так.

Код из моей библиотеки:

$.fn.customContextMenu = function(callBack){
    $(this).each(function(){
        $(this).bind("contextmenu",function(e){
             e.preventDefault();
             callBack();
        });
    }); 
}

Код с моей страницы script:

$("#newmagazine").customContextMenu(function(){
    alert("some code");
});

Ответ 5

document.oncontextmenu = function() {return false;}; //disable the browser context menu
$('selector-name')[0].oncontextmenu = function(){} //set jquery element context menu 

Ответ 6

Является ли contextmenu событием?

Я бы использовал onmousedown или onclick, затем захватил свойство MouseEvent кнопки, чтобы определить, какая кнопка была нажата (0 = левая, 1 = средняя, ​​2 = справа).

Ответ 7

Чтобы отключить контекстное меню контекстного меню на всех изображениях страницы, просто выполните следующее:

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;};
}

Ответ 8

.contextmenu: -

Попробуйте сделать следующее

<div id="wrap">Right click</div>

<script>
$('#wrap').contextmenu(function() {
  alert("Right click");
});
</script>

.mousedown: -

$('#wrap').mousedown(function(event) {

        if(event.which == 3){
            alert('Right Mouse button pressed.');
        }  
});