1

我有一个上下文菜单,我在其中显示基于已填充字段的选项。上下文与字段位于同一页面上,因此如果他们将内容放在文本框中,我希望它立即显示在上下文菜单中。所有这些都有效。

这是一个我们正在定义可以通过上下文菜单插入程序其他部分的文本字段/区域的标志的页面。使用这些标志的字段之一位于同一页面上。

我的问题是如果没有填充任何字段。当右键单击上下文菜单时,我收到一个 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;
    }
});
4

1 回答 1

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;
}
于 2013-10-31T22:26:32.733 回答