, поэтому я использую следующее контекстное меню:
(function($) {
$.fn.setUpContextMenu = function() {
$(this).dialog({
autoOpen: false,
modal: true,
resizable: false,
width: 'auto',
height: 'auto',
minHeight: 'auto',
minWidth: 'auto'
});
return $(this);
};
$.fn.openContextMenu = function(jsEvent) {
var menu = $(this);
menu.css('padding', 0);
menu.dialog('option', 'position', [jsEvent.clientX, jsEvent.clientY]);
menu.unbind('dialogopen');
menu.bind('dialogopen', function(event, ui) {
$('.ui-dialog-titlebar').hide();
$('.ui-widget-overlay').unbind('click');
$('.ui-widget-overlay').css('opacity', 0);
$('.ui-widget-overlay').click(function() {
menu.dialog('close');
});
});
menu.dialog('open');
return menu;
};
}) (Jquery);
Я использую это так:
$('#context-menu a').css('display', 'block').button();
$('#context-menu').setUpContextMenu();
$(document).bind('contextmenu', function(e) {
$('#context-menu').openContextMenu(e);
return false;
});
Контекстное меню выглядит так:
<!--RIGHT-CLICK MENU MARKUP!-->
<div id="context-menu">
<a href="javascript:void(0)" id="option1">Option 1</a>
<a href="javascript: alert($(this).attr('href'));">Option 2</a>
<a href="javascript:void(0)" id="option3">Option 3</a>
<a href="javascript:void(0)" id="option4">Option 4</a>
</div>
Вот моя проблема. Я пытаюсь понять, как захватить событие правого клика, чтобы я мог определить, из какого элемента это событие было запущено. Я знаю, что если мне нужно, я могу просто добавить новое значение данных в $ ('# context-menu'), которое содержит событие, но это кажется очень окольным и совсем не элегантным. Должен быть лучший способ получить оригинальное событие.
Спасибо за любую помощь, я ценю это:)
* РЕДАКТИРОВАТЬ: * Чтобы прояснить, я хочу выяснить, как ссылаться на событие правой кнопки мыши внутри тегов внутри фактической разметки контекстного меню. Когда я нажимаю на них, я выполняю некоторый javascript, как мне обратиться к событию, чтобы выяснить, какой элемент вызвал его?