2013-01-08 2 views
0

저는 개발중인 응용 프로그램과 함께 dijit DropDownButton을 사용하고 있습니다. 아시다시피 버튼을 한 번 클릭하면 메뉴가 나타납니다. 다시 클릭하면 사라집니다. API 문서에서이 부분을 찾을 수 없지만 내 DropDownButton이 현재 열려 있거나 닫혀 있는지 여부를 알 수있는 속성이 있습니까?dijit 드롭 다운 버튼의 열림/닫힘 상태를 어떻게 결정합니까?

다른 작업을 수행하기 위해 DropDownButton의 OnClick 이벤트에서 dojo.connect 리스너를 사용하려고하는데 DropDownButton이 "닫힌"경우에만 발생합니다.

고맙습니다. 스티브

답변

0

나는 비슷한 문제가있었습니다. 나도 같은 속성을 찾을 수 없습니다, 그래서 다음과 같이 dropDownIsOpen 및 최우선 openDropDown()closeDropDown() 그 값을 업데이트하는 사용자 지정 속성을 추가 결국 :

myButton.dropDownIsOpen = false; 
myButton.openDropDown = function() { 
    this.dropDownIsOpen = true; 
    this.inherited("openDropDown", arguments); 
}; 
myButton.closeDropDown = function() { 
    this.dropDownIsOpen = false; 
    this.inherited("closeDropDown", arguments); 
}; 
0

당신은 CSS 클래스를 통해 추적 할 수 있습니다. DropDown이 열리면 초점을 얻는 기본 DOM 노드 (property focusNode)는 dijitHasDropDownOpen이라는 추가 클래스를받습니다. 따라서, 상황에 :

// assuming "d" is a dijit.DropDownButton 
dojo.connect(d, 'onClick', function() { 
    if (dojo.hasClass(d.focusNode, 'dijitHasDropDownOpen') === false) { 
     performAnotherTask(); // this fires only if the menu is closed. 
    } 
}); 

이 예제는 당신이 당신의 버전을 지정하지 않았기 때문에, 도장 1.6.2입니다. 물론 다른 버전에서도 쉽게 변환 할 수 있습니다.

관련 문제