我正在使用我正在開發的應用程序使用dijit DropDownButton。如您所知,如果您單擊該按鈕一次,會出現一個菜單。再次點擊並消失。我似乎無法在API文檔中找到它,但是有一個屬性可以讀取,告訴我我的DropDownButton當前是否打開或關閉?如何確定dijit下拉按鈕的打開/關閉狀態?
我想在DropDownButton的OnClick事件上使用dojo.connect監聽器來執行另一個任務,但只有當DropDownButton被單擊「關閉」。
謝謝! Steve
我正在使用我正在開發的應用程序使用dijit DropDownButton。如您所知,如果您單擊該按鈕一次,會出現一個菜單。再次點擊並消失。我似乎無法在API文檔中找到它,但是有一個屬性可以讀取,告訴我我的DropDownButton當前是否打開或關閉?如何確定dijit下拉按鈕的打開/關閉狀態?
我想在DropDownButton的OnClick事件上使用dojo.connect監聽器來執行另一個任務,但只有當DropDownButton被單擊「關閉」。
謝謝! Steve
我有類似的問題。我無法要麼找到這樣的屬性,所以我最終加入了自定義屬性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);
};
您可以通過其CSS類跟蹤它。當DropDown處於打開狀態時,獲取焦點的基礎DOM節點(屬性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.
}
});
這個例子是針對dojo 1.6.2的,因爲你沒有指定你的版本。當然,它可以輕鬆轉換爲其他版本。