jQuery метод .contextmenu()
Определение и применение
jQuery метод .contextmenu() привязывает JavaScript обработчик событий contextmenu (вызов
контекстного меню на элементе - клик правой кнопкой мыши), или запускает это событие на выбранный элемент.
jQuery синтаксис:
Синтаксис 1.0:
$( selector ).contextmenu() // метод используется без параметров
$( selector ).contextmenu( handler )handler - Function( Event eventObject )
Синтаксис 1.4.3:
$( selector ).contextmenu( eventData, handler )eventData - Anything
handler - Function( Event eventObject )
Обращаю Ваше внимание, что метод .contextmenu(), используемый вместе с функцией, переданной в качестве параметра (handler) является, короткой записью метода .on(), а без параметра является короткой записью метода .trigger():
$( selector ).on( "contextmenu", handler )
$( selector ).trigger( "contextmenu" )
Добавлен в версии jQuery
1.0 (синтаксис обновлен в версии 1.4.3)Значения параметров
| Параметр | Описание |
|---|---|
| eventData | Объект, содержащий данные, которые будут переданы в обработчик событий. |
| handler |
Функция, которая будет выполнена каждый раз, когда событие срабатывает. Функция в качестве параметра может
принимать объект Event.
|
Пример старого кода
Метод .contextmenu() — пример 1
Нажмите . Используйте кнопки в результате и наблюдайте изменения. Измените JavaScript и запустите пример повторно. Используется jQuery 4.0.0.
index.html
<button>Клик</button>
<div>Элемент div</div>
main.js
$(document).ready(function () {
$('button').click(function () {
// задаем функцию при нажатиии на элемент <button>
$('div').contextmenu() // вызываем событие contextmenu на элементе <div>
})
$('div').contextmenu(function () {
// задаем функцию при нажатиии на элемент <div>
$('div').toggleClass('orangered-bg') // добавляем, или убираем класс orangered-bg у элемента
})
})
style.css
body {
margin: 16px;
font:
16px/1.5 system-ui,
sans-serif;
overflow-wrap: anywhere;
}
img,
input,
select,
textarea,
button {
max-width: 100%;
}
div {
width: 100px; /* ширина элемента */
height: 100px; /* высота элемента */
background: blue; /* цвет заднего фона */
}
.orangered-bg {
background: orangered; /* цвет заднего фона */
}
Нажмите , чтобы запустить пример.
В этом примере с использованием jQuery метода .contextmenu() мы при нажатии на элемент
<button>
(кнопка) вызываем событие "contextmenu" на элементе
<div>. Самому элементу
<div>
задаем, что при срабатывании события "contextmenu" на элементе выполнить функцию, которая с использованием
метода
.toggleClass()
добавит, или уберет класс orangered-bg у элемента.