JQuery Ui Контекстное меню разыменовать идентификатор
Как я могу получить меню идентификаторов контекстов, как в https://github.com/mar10/jquery-ui-contextmenu/blob/master/README.md, но с дополнительно предоставленными идентификаторами
<div id="container">
<div id="menu1" class="hasmenu">AAA</div>
<div id="menu2" class="hasmenu">AAA</div>
</div>
в методе выбора?
$("#container").contextmenu({
delegate: ".hasmenu",
menu: [
{title: "Copy", cmd: "copy", uiIcon: "ui-icon-copy"}
],
select: function(event, ui) {
alert("select " + ui.target.id); // ui.target.id fails!!!
}
});
2 ответа
ui.target
является элементом jQuery, а не простым javascript HTMLElement
, Вы можете получить это с [0]
суффикс ($(ui.target)[0].id
) или, что более понятно, просто используйте функцию доступа к атрибуту jQuery:
ui.target.attr("id")
Вот ссылка на пример скрипта и фрагмент стека ниже
$("#container").contextmenu({
delegate: ".hasmenu",
menu: [
{title: "Copy", cmd: "copy", uiIcon: "ui-icon-copy"}
],
select: function(event, ui) {
alert("select " + ui.target.attr("id"));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>
<script src="http://cdn.jsdelivr.net/jquery.ui-contextmenu/1.8.0/jquery.ui-contextmenu.min.js"></script>
<div id="container">
<div id="menu1" class="hasmenu">AAA</div>
<div id="menu2" class="hasmenu">AAA</div>
</div>
Используйте следующий код:
$(ui.target).closest('div').attr('id');