我有一个上下文菜单,我根据已填充的字段显示选项。上下文与字段位于同一页面上,因此如果它们将内容放在文本框中,我希望它立即显示在上下文菜单中。所有这一切都有效。
这是我们定义标志的页面,可以通过上下文菜单将其插入到程序其他部分的文本字段/区域中。使用这些标志的其中一个字段位于同一页面上。
我的问题是,如果没有填充任何字段。当右键单击上下文菜单时,我收到一个javascript错误,说明没有定义任何项目。有没有办法阻止上下文菜单在空时触发?
$.contextMenu({
selector: '.context',
trigger: 'right',
build: function($trigger, e){
var options = {
callback: function(key, options){
switch(key){
case "Field1":
//Code
break;
//More Options
}
},
items: {}
}
if($('#Field1').val() != ""){
options.items['Field1'] = { name: $('#Field1').val(), icon: "Field1" }
}
//More Fields
return options;
}
});
答案 0 :(得分:3)
使用变量来跟踪您是否在菜单中添加了任何项目。然后,如果没有添加,则可以返回false
。
build: function($trigger, e){
var showMenu = false;
var options = {
callback: function(key, options){
switch(key){
case "Field1":
//Code
break;
//More Options
}
},
items: {}
}
if($('#Field1').val() != ""){
options.items['Field1'] = { name: $('#Field1').val(), icon: "Field1" };
showMenu = true;
}
//More Fields
return showMenu && options;
}