js将元素ID传递给菜单项

nw.js pass element ID to menuitem

本文关键字:菜单项 ID 元素 js      更新时间:2023-09-26

我想通过javascript事件将元素id传递给新的菜单项。

<a id="element_1" class="drop-view-link" draggable="false" href="#" oncontextmenu="upShowMenu(event)" onclick="gui.Shell.openExternal('''+d.url[i].href+''')">http://stackoverflow.com/</a>
function upShowMenu(e){
e.preventDefault();
menu.popup(e.x, e.y);
//alert(e.target.id);
return false;
}
menu.append(
new gui.MenuItem(
    {
        label: 'Edit',
        click: function(ev){
        //alert(ev.id); ???
        }
    }
)
);

有可能吗?如果有可能,我怎么能?

谢谢!

如果我没弄错的话,你是想在选择Edit后做一些与点击(目标)元素相关的事情。

在弹出上下文菜单之前,将contextMenu_element之类的变量设置为目标元素。

var contextMenu_element;
function upShowMenu(e) {
    e.preventDefault();
    contextMenu_element = e.target;
    menu.popup(e.x, e.y);
    return false;
}

那么你可以在菜单项的点击功能中使用这个变量:

menu.append(new gui.MenuItem({
    label: 'Edit',
    click: function() {
        console.log(contextMenu_element.getAttribute('id'));
    }
}));

这里我们通过调用getAttribute('id')来获取元素的ID。每次变量改变时,菜单项对当前选中的元素执行特定的操作。

您也可以使用menu的属性作为变量。将contextMenu_element替换为menu.element