Триггер правой кнопкой мыши

Я пытаюсь привязать контекстное меню к элементам с помощью плагина ContextMenu. Поэтому при первом щелчке правой кнопкой мыши по этим элементам я бы хотел:

  1. перехватить щелчок правой кнопкой мыши по событию в реальном времени для определенного класса "без текста",
  2. определить, если data('events').contextmenu существует,
  3. если нет, присоедините контекстное меню (и измените класс, чтобы избежать повторного запуска этого процесса),
  4. повторно бросить событие правого щелчка, чтобы показать щелчок правой кнопкой мыши.

У меня проблемы с последним пунктом. JQuery позволяет .click() или .trigger('click'), которые имитируют щелчок левой кнопкой мыши, но, кажется, не существует способа вызвать событие щелчка правой кнопкой мыши через trigger,

Или есть?

3 ответа

Решение

Вы можете вызвать его

$('#element').trigger({
    type: 'mousedown',
    which: 3
});

http://api.jquery.com/trigger/

Есть более новый способ сделать это:

$('#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
        }
    }
});
Другие вопросы по тегам