2016-08-16 107 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