0

如何检索上下文菜单的 ID,就像在https://github.com/mar10/jquery-ui-contextmenu/blob/master/README.md中一样,但另外提供了 ID

<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!!!
    }
});
4

2 回答 2

2

ui.target是一个 jQuery 元素,而不是一个普通的 javascript HTMLElement。您可以使用后缀 ( )来实现这一点,或者更易读的是,只需使用jQuery 属性访问器函数[0]$(ui.target)[0].id

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>

于 2014-11-28T16:18:58.393 回答
0

使用以下代码:

$(ui.target).closest('div').attr('id');
于 2017-11-03T11:03:02.817 回答