Я использую Dojo 1.6.1 и хочу сделать так, чтобы мои диалоги Dojo можно было закрыть, щелкнув за пределами самого диалога.После исследования, похоже, что один из самых простых способов сделать это - сделать что-то вроде этого:
var dij = dijit._underlay.domNode;
dojo.connect(dij, "onclick", function(e) {
dojo.query('[role="dialog"]').forEach(function(element) {
if (element.className.match("dijit")) {
if(element.id)
{
var widget = dijit.byId(element.id);
if(widget._isShown() === true)
{
widget.hide();
}
}
}
});
});
Однако, это не работает, потому что возвращается dijit._underlay, говоря, что он не определен.Чего мне не хватает, чтобы выполнить это или есть еще более простой способ сделать это?
ОБНОВЛЕНИЕ Я обновил код, который работает, но он работает только после того, как я вызвал .show onодин из моих диалогов, потом послесловия это все соус.Похоже, подложка не создается до тех пор, пока не появится хотя бы одно диалоговое окно.