0

開発中のアプリケーションでdijitDropDownButtonを使用しています。ご存知のように、ボタンを1回クリックすると、メニューが表示されます。もう一度クリックすると消えます。APIドキュメントでこれを見つけることができないようですが、DropDownButtonが現在開いているか閉じているかを示すために読み取ることができるプロパティはありますか?

別のタスクを実行するために、DropDownButtonのOnClickイベントでdojo.connectリスナーを使用しようとしていますが、DropDownButtonが「閉じた」クリックされた場合に限ります。

ありがとう!スティーブ

4

2 に答える 2

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);
};
于 2013-02-20T15:47:47.500 に答える
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 用です。もちろん、他のバージョンに簡単に変換できます。

于 2016-07-08T17:53:49.607 に答える