Контекстное меню 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!!!
    }
});

person Stefan    schedule 28.11.2014    source источник


Ответы (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>

person blgt    schedule 28.11.2014
comment
Просто опередил меня... :) - person T J; 28.11.2014
comment
@TJ полностью не по теме: есть ли страница часто задаваемых вопросов о фрагментах стека? Я пытался добавить его сюда, но не могу понять или найти учебник. - person blgt; 28.11.2014
comment
Мне известны только это и это Может быть, я смогу вам помочь, если вы у меня есть конкретная проблема, потому что это контекстное меню работает для меня во фрагменте... - person T J; 28.11.2014
comment
Спасибо, я полностью пропустил кнопку добавления библиотек (которая только что вставила <source>..) - person blgt; 28.11.2014

Используйте следующий код:

$(ui.target).closest('div').attr('id');
person jiten jethva    schedule 03.11.2017