此脚本有效,并且是构建上下文菜单的示例脚本..但我需要它根据所点击的内容进行不同的构造。如何将if语句应用于列表中的每个项目,例如在满足条件时隐藏“编辑”项等,等等。
$(function(){
$.contextMenu({
selector: '.context-menu-one',
build: function($trigger, e) {
return {
items:
{
"edit":
{
name: "Edit",
icon: "edit",
callback: function(key, options)
{
// some code to perform
}
},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: "quit"}
}
};
}
});
});
答案 0 :(得分:1)
使用IIFE
var foo = {
bar: {
baz: (function() {
// some code here
return "value";
})()
}
};
foo.bar.baz // => "value"
答案 1 :(得分:1)
您可以构造items对象然后将其返回:
$.contextMenu({
selector: '.context-menu-one',
build: function ($trigger, e) {
var items = {
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: "quit"}
};
if (someCondition) {
items.edit = {
name: "Edit",
icon: "edit",
callback: function(key, options) {
// some code to perform
}
};
}
return {items: items};
}
});
这样您就可以在返回项目之前定义一些属性。