Привязать событие к щелчку правой кнопкой мыши
Как я могу вызвать некоторые действия с помощью правого клика после отключения контекстного меню браузера?
Я пробовал это.,.
$(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.');
}
});