在图标上显示上下文菜单?

时间:2016-03-22 17:58:15

标签: javascript user-interface contextmenu webix

我有一个Webix数据表

webix.ui({
  view:"datatable", id:"dtable", data:grid_data,
  columns:[
    {id:"title", adjust:true},
    {id:"more", template:"<icon class='webix_icon fa-cog'></icon>"}
  ]
});

附带上下文菜单

webix.ui({
  view:"contextmenu",
  data:["More info",  "Edit", "Delete record"],
  click:function(id, context){
    webix.message(id+" on row "+this.getContext().id);
  }
}).attachTo( $$("dtable") );

这是我的snippet

想知道是否可以仅在图标上显示上下文菜单?有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

在Webix文档中,您将找到http://neo4j.com/docs/stable/query-create-unique.html#_create_unique_relationships事件。使用它,您可以检查列ID并阻止在其他列上显示上下文菜单:

on:{
    onBeforeContextMenu:function(id, e, node){
        if (id.column !== "more")
            return false;
    }
}

在您的代码段中,该列仅包含图标,因此此解决方案可以满足您的需求。另外,我建议您通过

阻止数据表上的浏览器上下文
webix.event($$("dtable").$view, "contextmenu", function(e){  
    webix.html.preventEvent(e);
});

onBeforeContextMenu