Контекстное меню jQuery - определение элемента, вызвавшего его отключение

Я пытаюсь написать опцию контекстного меню для своей страницы. Обычно по 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>

- Итак - я могу видеть, какой элемент создал событие при первом щелчке правой кнопкой мыши. Но не при щелчке по пункту меню.

Я работал над чем-то, записывая элемент в скрытое текстовое поле при щелчке правой кнопкой мыши, затем читал его при щелчке по одному из параметров и удалял его, когда меню закрывается. Однако это не кажется идеальным подходом - и я чувствую, что упускаю что-то базовое.

Надеюсь, вы понимаете, что я пытаюсь сделать. Более полный пример могу опубликовать по запросу.

8
задан jb. 13 December 2010 в 14:51
поделиться