Триггер правой кнопкой мыши
Я пытаюсь привязать контекстное меню к элементам с помощью плагина ContextMenu. Поэтому при первом щелчке правой кнопкой мыши по этим элементам я бы хотел:
- перехватить щелчок правой кнопкой мыши по событию в реальном времени для определенного класса "без текста",
- определить, если
data('events').contextmenu
существует, - если нет, присоедините контекстное меню (и измените класс, чтобы избежать повторного запуска этого процесса),
- повторно бросить событие правого щелчка, чтобы показать щелчок правой кнопкой мыши.
У меня проблемы с последним пунктом. JQuery позволяет .click()
или .trigger('click')
, которые имитируют щелчок левой кнопкой мыши, но, кажется, не существует способа вызвать событие щелчка правой кнопкой мыши через trigger
,
Или есть?
3 ответа
Решение
Вы можете вызвать его
$('#element').trigger({
type: 'mousedown',
which: 3
});
Есть более новый способ сделать это:
$('#element').triggerHandler('contextmenu');
Аналогично этому, но я не уверен, что вы можете ссылаться на данные пользовательского интерфейса jQuery, но.
$('#element').mousedown(function(event)
{
if(event.which == 3)
{
if(typeof($(this).data('events')) === 'undefined')
{
$(this).data('events', { somedata: 'hello' });
}
else
{
// "re-throw" right click context menu
}
}
});