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

변경 onItemClick에서 onMenuItemClick으로 변경하십시오.

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

Webix docs에서 :

두 가지 방법 메뉴 내부 이벤트 중 하나를 사용할 수 있습니다, 예를 들어, 이벤트를 클릭 onMenuItemClick - 화재 계층에 관계없이 모든 메뉴 항목을 클릭에 수평. 비활성화 된 항목을 무시합니다. onItemClick - 동일한 계층 수준의 항목을 클릭하면 실행되는 표준 이벤트입니다. 무능한 품목을 위해 또한 발사한다. 여기

+0

감사합니다! 하나의 중요한 수정 - 'onMenuItemClick'이 항목에 대한 것이 아니라 메뉴에 대해 정의되어야합니다. http://webix.com/snippet/da63bc2b – AndyLurch

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

로그

함수 (t) {this.getMenu (t) .addCss ("webix_disabled"t)} 여기서

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

로그

function (t) {if ((this.data.pull [var] = this.bit.pull) {var i = this.getItem (e); if (i.submenu) {var s = this.br (i) .getMenu (t)은 리턴 S}}}

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

는 ID를 필터링 할 수 있다면 === '1'의 onclick

onItemClick 기준 : 함수 (ID) {만약 (ID! == "1") {// 코드 여기}}

또는 onItemClick 2 을 변경 onMenuItemClick

follow the #1 answer

+0

> _1ly에 대해 비활성화 된 클래스 추가 _ 설명 해 주셔서 감사합니다! AFAICS'onMenuItemClick'은 필요에 따라 그것을 처리합니다. – AndyLurch

관련 문제