我正在使用dijit DropDownButton和我正在开发的应用程序。如您所知,如果您单击按钮一次,则会出现一个菜单。再次单击它会消失。我似乎无法在API文档中找到这个但是有一个属性我可以阅读告诉我我的DropDownButton当前是打开还是关闭?
我正在尝试在DropDownButton的OnClick事件上使用dojo.connect侦听器以执行其他任务,但前提是单击DropDownButton“关闭”。
谢谢! 史蒂夫
答案 0 :(得分: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);
};
答案 1 :(得分:0)
您可以通过其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,因为您没有指定您的版本。当然,它可以很容易地转换为其他版本。