2016-10-05 60 views
0

我想通过javascript事件将元素id传递给新的menuitem。nw.js将元素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

如果我找不到你想要的东西,在选择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