几个小时后,我找到了答案。
关键是,如果我想在菜单显示之前构建菜单,我必须使用 build。
现在,在菜单准备好显示之前,我可以通过编辑对象命令(在我的例子中)来重新排列我想要显示的内容。
这是我的精细代码:
$.contextMenu({
selector: '.fullRegularRow, .COLservers4, .COLservers2, .quarterOf2U, .fullDoubledRow, .fullQuadrdRow',
build : function($triggerElement, e){
var fanmode = ( $triggerElement[0].attributes["data-fanmode"].value);
var powermode = ( $triggerElement[0].attributes["data-powermode"].value);
if(fanmode == "STANDARD_MODE"){
menuListManager.commands["strdFanMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Fan mode", icon: "fas fa-check"};
menuListManager.commands["zutaFanMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Fan mode"};
}else{
menuListManager.commands["strdFanMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Fan mode"};
menuListManager.commands["zutaFanMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Fan mode", icon: "fas fa-check"};
}
if(powermode == "STANDARD_MODE"){
menuListManager.commands["strdPowerMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Power mode", icon: "fas fa-check"};
menuListManager.commands["zutaPowerMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Power mode"};
}else{
menuListManager.commands["strdPowerMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Power mode"};
menuListManager.commands["zutaPowerMode"] = {callback: function(key, opt){ menuList.sendMenuRequest(key, serverURL); }, name: "Power mode", icon: "fas fa-check"};
}
return {
callback: function(){},
items: menuListManager.commands,
};
}
});
希望对某人有所帮助。