2016-08-16 78 views
0

显然我有另一个Webix的问题。如何禁用单个菜单项?

我试图禁用单个菜单项,但子菜单的onItemClick操作仍然有效。这里是我的代码:

webix.ui({ 
    view:"menu", 
    id:'menu', 
    data:[ 
    { 
     id:'root', 
     value:'Available actions',  
     config:{ 
     on: { 
      onItemClick: function(id){ webix.message(id) } 
     } 
     }, 
     submenu:[ 
     { id:'1', value:'Open...' } 
    ] 
    } 
    ] 
}); 

$$('menu').disableItem('1'); 

全样本:http://webix.com/snippet/9128f7b0

我哪里错了,有没有什么办法来禁用菜单项?

回答

1

更改onItemClickonMenuItemClick

例子:http://webix.com/snippet/8cba874c

Webix docs

这两种方法都可以在任何菜单内的事件一起使用,例如,单击事件: onMenuItemClick - 火上点击所有菜单项不分尊卑的水平。忽略禁用的项目; onItemClick - 在点击相同层次级别的任何项目时触发的标准事件。还为残疾人物品发射火。

+0

Thanks!一个重要的校正 - 好像'onMenuItemClick'应当对菜单进行定义,而不是它的项目:http://webix.com/snippet/da63bc2b – AndyLurch

1
console.log($$('menu').disableItem) 

日志这里

函数(t)的{this.getMenu(t)的.addCss(T, “webix_disabled”);}

console.log($$('menu').getMenu) 

日志这里

函数(t){if( (var this in this.data.pull){var i = this.getItem(e); if(i.submenu){var s = this.br(i)this.data.pull [t])return this; .getMenu(T);如果(多个)返回S}}}

$$('menu').disableItem('1'); // only add disabled class for id=1 

可以过滤ID === '1' 的onclick通过

onItemClick:功能(ID){如果(ID!== '1'){//代码在这里}}

或更改onItemClick onMenuItemClick

follow the #1 answer

+0

> _only添加禁用类ID = 1_ 谢谢你的解释! AFAICS'onMenuItemClick'按照需要处理它 – AndyLurch