Щелкните правой кнопкой мыши событие Javascript? Если да, то как его использовать?Щелкните правой кнопкой мыши событие Javascript?
ответ
Как уже упоминалось, правая кнопка мыши может быть обнаружена through the usual mouse events (mousedown, mouseup, click). Однако, если вы ищете событие стрельбы, когда вызывается меню правой кнопки мыши, вы смотрите не в том месте. Меню правого щелчка/контекста также доступно с клавиатуры (shift + F10 или клавиша контекстного меню в Windows и некоторых Linux). В этой ситуации, событие, которое вы ищете, oncontextmenu
:
window.oncontextmenu = function()
{
showCustomMenu();
return false; // cancel default menu
}
Что касается самих событий мыши, браузеры установить свойство объекта события, который доступен из обработки событий функции:
document.body.onclick = function (e) {
var isRightMB;
e = e || window.event;
if ("which" in e) // Gecko (Firefox), WebKit (Safari/Chrome) & Opera
isRightMB = e.which == 3;
else if ("button" in e) // IE, Opera
isRightMB = e.button == 2;
alert("Right mouse button " + (isRightMB ? "" : " was not") + "clicked!");
}
Да - это!
function doSomething(e) {
var rightclick;
if (!e) var e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
alert('Rightclick: ' + rightclick); // true or false
}
Хорошо - технически это не «событие», но оно может быть использовано. – ChickenMilkBomb
Ваш код совсем не отображается, как кто-то назвал бы это ... –
@TimothyKhouri (и кто-то еще здесь): это совместимая функция прослушивания событий. Вы передали бы сам объект функции в качестве второго аргумента [addEventListener] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener), который затем должен был бы _call_ его при появлении указанное событие. Например: 'elem.addEventListener (« click », doSomething)' –
Нет, но вы можете обнаружить, что кнопка мыши была использована в «OnMouseDown» событие ... и оттуда определить, если он был «правой кнопкой мыши».
, так что должен щелкнуть правой кнопкой мыши событие onclick? – Brian
Вы правы, это было бы onmousedown. –
@Brian: правый щелчок вызовет 'onmousedown',' onmouseup' и 'onclick'. Однако, если вы ищете переопределение меню с правым щелчком, эти события не то, что вы должны использовать (см. Мой ответ ниже). –
Да, это событие javascript mousedown. Существует также jQuery plugin
посмотрит на следующем коде JQuery:
$("#myId").mousedown(function(ev){
if(ev.which == 3)
{
alert("Right mouse button clicked on element with id myId");
}
});
Значение which
будет:
- для левой кнопки
- для средней кнопки
- для правой кнопки
Eeeew, это ужасно! Почему '.which' не то же самое, что' .button'? O.o '.button' => * 0,1,2 *; 'which' => * 1,2,3 *. это просто неправильно. –
Я., хотя w3c говорит, что щелчок правой кнопкой мыши может быть обнаружен событием клика, onClick не запускается через правый клик в обычные браузеры.
Фактически, щелкните правой кнопкой мыши только триггер onMouseDown onMouseUp и onContextMenu.
Таким образом, вы можете рассматривать «onContextMenu» как событие правого щелчка. Это стандарт HTML5.0.
Да, звучит как отличное решение, особенно если вы ориентируетесь на новые браузеры. Я не думаю, что это только HTML5.0, потому что даже IE 5.5 поддерживает его на элементах! Подробнее о том, какие браузеры поддерживают его: http://www.quirksmode.org/dom/events/contextmenu.html – Ignas2526
Handle событие с использованием библиотеки jQuery
$(window).on("contextmenu", function(e)
{
alert("Right click");
})
Да, oncontextmenu, вероятно, является лучшей альтернативой, но быть в курсе, что он запускает на мышь вниз, тогда нажмите срабатывает на кнопки мыши.
Другие связанные вопросы задавали вопрос о двойном щелчке правой кнопкой мыши, который, по-видимому, не поддерживается, за исключением ручной проверки таймера. Одна из причин, по которой вы, возможно, захотите иметь двойной щелчок правой кнопкой мыши, - это то, что вам нужно/нужно поддерживать левый вход мыши (смена кнопок). Похоже, что реализации браузеров делают много предположений о том, как мы должны использовать доступные устройства ввода.
мой ответ window.oncontextmenu
, например:
window.oncontextmenu = function() {
alert('Right Click')
}
<h1>Please Right Click here!</h1>
Следующий код использует JQuery, чтобы генерировать событие пользовательского rightclick
на основе умолчанию mousedown
и mouseup
событий. Рассматриваются следующие вопросы:
- триггер MouseUp
- триггер только при нажатии MouseDown на тот же элемент, прежде чем
- этот код особенно работает в JFX WebView (поскольку
contextmenu
событие не срабатывает там) - это не срабатывает при нажатии клавиши ContextMenu на клавиатуре (например, раствор с
on('contextmenu', ...)
делает
$(function()
{ // global rightclick handler - trigger custom event "rightclick"
\t var mouseDownElements = [];
\t $(document).on('mousedown', '*', function(event)
\t {
\t \t if (event.which == 3)
\t \t {
\t \t \t mouseDownElements.push(this);
\t \t }
\t });
\t $(document).on('mouseup', '*', function(event)
\t {
\t \t if (event.which == 3 && mouseDownElements.indexOf(this) >= 0)
\t \t {
\t \t \t $(this).trigger('rightclick');
\t \t }
\t });
\t $(document).on('mouseup', function()
\t {
\t \t mouseDownElements.length = 0;
\t });
// disable contextmenu
$(document).on('contextmenu', function(event)
\t {
\t \t event.preventDefault();
\t });
});
// Usage:
$('#testButton').on('rightclick', function(event)
{
alert('this was a rightclick');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="testButton">Rightclick me</button>
Если Вы хотите вызвать функцию, а правой кнопкой мыши событие означает, что мы можем использовать следующие
<html lang="en" oncontextmenu="func(); return false;">
</html>
<script>
function func(){
alert("Yes");
}
</script>
Чтобы справиться с правой кнопкой мыши с помощью мыши, вы можете использовать «oncontextmenu» событие. Ниже приведен пример:
document.body.oncontextmenu=function(event) {
alert(" Right click! ");
};
Приведенный выше код предупреждает текст при нажатии правой кнопки мыши. Если вы не хотите, чтобы меню по умолчанию браузера отображалось, вы можете добавить return false; В конце содержимого функции. Спасибо.
Вместо того, чтобы просто отвечать ответом на некоторые рамки, ваш ответ был бы более полезен, если бы он содержал ванильный JS а затем, возможно, разработал его, чтобы описать, как проще было бы использовать вашу инфраструктуру. – Xaniff
Хорошо ... Спасибо за рекомендацию .. На самом деле это очень просто с vanilA js too –
Самый простой способ получить правой кнопкой мыши сделано, используя
$('classx').on('contextmenu', function (event) {
});
Однако это не кросс браузер решение, браузеры ведут себя по-разному для этого события особенно Firefox и IE. Я бы порекомендовал ниже для кросс-браузерного решения
$('classx').on('mousedown', function (event) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode === 3) {
//your right click code goes here
}
});
- 1. Eclipse RCP щелкните правой кнопкой мыши событие
- 2. OpenLayers 3 щелкните правой кнопкой мыши событие
- 3. щелкните правой кнопкой мыши событие в opencv
- 4. Щелкните правой кнопкой мыши по событию мыши
- 5. AutoHotKey Щелкните правой кнопкой мыши
- 6. Щелкните правой кнопкой мыши MainMenu
- 7. Щелкните правой кнопкой мыши (меню) в PowerBuilder
- 8. flex TLF щелкните правой кнопкой мыши
- 9. щелкните правой кнопкой мыши на IE
- 10. Щелкните правой кнопкой мыши на NSStatusItem
- 11. Highslide Disable Щелкните правой кнопкой мыши
- 12. Щелкните правой кнопкой мыши вставить событие для счетчика символов
- 13. vb.net datagridview заголовок щелкните правой кнопкой мыши событие
- 14. ListBox мыши щелкните левой кнопкой мыши событие
- 15. Специальные события мыши в браузере: колесо, щелкните правой кнопкой мыши?
- 16. Щелкните правой кнопкой мыши contextMenu на QPushButton
- 17. Щелкните правой кнопкой мыши на ClojureScript?
- 18. Щелкните правой кнопкой мыши, текстовый захват
- 19. Щелкните правой кнопкой мыши в проводнике Windows
- 20. Applescript щелкните правой кнопкой мыши файл
- 21. wpf listview щелкните правой кнопкой мыши проблему
- 22. Maya щелкните правой кнопкой мыши контекстное меню
- 23. Щелкните правой кнопкой мыши на svg
- 24. Щелкните правой кнопкой мыши по OSX новинка
- 25. Щелкните правой кнопкой мыши по WebBuild
- 26. Bukkit - Detect Щелкните правой кнопкой мыши
- 27. VB6 Listbox Щелкните правой кнопкой мыши
- 28. GtkIconView Щелкните правой кнопкой мыши Активировать
- 29. Щелкните правой кнопкой мыши по TDBGRID delphi2007
- 30. WPF Datagrid гиперссылок Щелкните правой кнопкой мыши
Так же, как с проблемой/button, «oncontextmenu» не реализована одинаково во всех браузерах ... см. Http://www.quirksmode.org/dom/events/contextmenu.html для некоторых из «gotchas», , – smencer
@AndyE Привет, Энди, выражение '(isRightMB?" Не было:: "") 'должно быть' (isRightMB?«было»: «не было»). Правильно ? Пожалуйста, помогите его просмотреть. –
@Joe: смешно, как это было 32 голоса и 4 года без каких-либо замечаний ;-) Я думаю, что меня могут извинить, хотя это было 00:30, когда я написал ответ! –