Я использую Dojo 1.6.1, и я хочу сделать так, чтобы мой диалог Dojo можно было закрыть, щелкнув вне самого диалога. После исследования, это выглядит как один из простейших способов сделать это, делая что-то вроде этого:Закройте Dojo Dialog, щелкнув вне его
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 возвращается говоря, что это не определено. Что мне недостает, чтобы выполнить это, или есть еще более простой способ сделать это?
UPDATE Я обновил код, который работает, но он работает только после того, как я вызвал .show в одном из моих диалогов, а затем послесловие - это все соус. Похоже, что подкладка не создается, пока не появится хотя бы один диалог.
Вы также можете попробовать TooltipDialog. У этого есть другой пользовательский интерфейс, но поведение близко к тому, что вы ищете. – peller