アニメーション シーケンス中の Dojo Dijit Dialog .hide() メソッドに問題があります。Tundra テーマで Dojo 1.7 を使用しています。ダイアログに、ダイアログを閉じるキャンセル ボタンがあります。
var global_welcome = new Dialog({
id: 'global_welcome',
style: "width: 750px",
draggable: false,
content: '<button type="button" id="global_welcomeCancel"> Cancel </button>',
onShow : function () {
on(dojo.byId('global_welcomeCancel'), "click", function (evt) {
dojo.stopEvent(evt);
global_welcome.hide();
});
});
}
});
これにより、Firebug で次のエラーが発生します。
exception in animation handler for: onEnd fx.js (line 152)
TypeError: this._fadeOutDeferred is undefined
this._fadeOutDeferred.callback(true);
このエラーに対する以前の回答ですが、 hide ではなく destroyRecursive を使用すると、アニメーションが終了する前にダイアログが破棄されることに関係していることがわかります。dojo.hitch() と setTimeOut を使用してみましたが、うまくいかないようでした。また、global_welcome.show() (別のボタンによって呼び出される) を使用してこのダイアログを初めて開き、キャンセル ボタンを押すと、エラーなしで動作することも不可解です。2 回目以降は、上記のエラー メッセージが表示されます。さらに、右上隅にある Dojo ダイアログのデフォルトの閉じるボタンによって、このエラーが発生することはありません。おそらく、閉じるボタンが呼び出すメソッドをonShowに呼び出させることができますか?
誰か助けてくれませんか?前もって感謝します!