Триггер правой кнопкой мыши - PullRequest
14 голосов
/ 06 июня 2011

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

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

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

Или есть?

Ответы [ 3 ]

29 голосов
/ 06 июня 2011

Вы можете вызвать его с помощью

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

http://api.jquery.com/trigger/#example-5

5 голосов
/ 10 декабря 2013

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

$('#element').triggerHandler('contextmenu');

Документацию можно найти здесь .

0 голосов
/ 06 июня 2011

Аналогично этому, но я не уверен, что вы можете ссылаться на данные пользовательского интерфейса 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
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...