我想通过javascript事件将元素id传递给新的menuitem。
<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); ???
}
}
)
);
有可能吗? 如果可能的话我怎么样?
谢谢!
答案 0 :(得分:0)
如果我说得对,那么在选择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
。