2016-08-16 12 views
0

どうやら別のWebix質問があります。1つのメニュー項目を無効にするにはどうすればよいですか?

私は単一のメニュー項目を無効にしようとしていますが、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

onItemClickからonMenuItemClickに変更してください。

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

Webix docsから:

どちらの方法は、メニュー内部のイベントのいずれかで使用することができ、例えば、イベントをクリックします。 onMenuItemClick - 火災を階層に関係なく、すべてのメニュー項目をクリックすると上レベル。無効な項目は無視します。 onItemClick - 同じ階層レベルの項目をクリックすると発生する標準イベントです。無効アイテムの場合も同様です。ここで

+0

ありがとう! 1つの重要な訂正 - そのメニューのためのメニューではなくonMenuItemClickを定義する必要があります:http://webix.com/snippet/da63bc2b – AndyLurch

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

ログ

関数(T){this.getMenu(T).addCss(T、 "webix_disabled");}ここで

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

ログ

function(t){if( {var i = this.getItem(e)}; if(i.submenu){var s = this.br(i)})を返します。 .getMenu(T);(S)リターン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

関連する問題