Я пытаюсь написать опцию контекстного меню для своей страницы. Обычно по div щелкают правой кнопкой мыши, появляется меню опций, которое можно использовать для выполнения задач.
Моя проблема заключается в попытке найти исходный элемент, который запускал все (то есть div, по которому щелкнули правой кнопкой мыши).
Мой код jQuery более или менее похож на S:
//this is what displays the context menu
$('.outfeedPosition').bind("contextmenu", function (e) {
$('#contextMenu').css({
top: e.pageY + 'px',
left: e.pageX + 'px'
}).show();
//'this' is the element which was clicked by the user.
alert($(this).attr('id'));
return false;
});
//this is the contextMenu's button handler.
$('#ctxDelete').click(function () {
alert('delete was clicked, but i dont know by which element - so I dont know which one to delete');
});
<div id="contextMenu">
<ul>
<li><a id="ctxInsert" href="#">Insert</a></li>
<li><a id="ctxEdit" href="#">Edit</a></li>
<li><a id="ctxDelete" href="#">Delete</a></li>
</ul>
</div>
- Итак - я могу видеть, какой элемент создал событие при первом щелчке правой кнопкой мыши. Но не при щелчке по пункту меню.
Я работал над чем-то, записывая элемент в скрытое текстовое поле при щелчке правой кнопкой мыши, затем читал его при щелчке по одному из параметров и удалял его, когда меню закрывается. Однако это не кажется идеальным подходом - и я чувствую, что упускаю что-то базовое.
Надеюсь, вы понимаете, что я пытаюсь сделать. Более полный пример могу опубликовать по запросу.