jQuery UI ダイアログで一方が他方をロードしている 2 つの Razor ビューがあります。ダイアログに読み込まれるビューで。メッセージを表示するために、別の jQuery UI ダイアログを開いています。
目的は、メッセージ ダイアログCancel
ボタンがクリックされたときに両方のダイアログを閉じることです。
かみそりのコードは次のとおりです。
メインビュー
<button id="openModel" onclick="openModel()">
<div id="mainDialog" />
<script type="text/javascript">
function openModel() {
$('#mainDialog').dialog({
open: function () {
// loading "the secondary view in the model dialog"
// url: controller-action url to load the second view
$(this).load('url');
}
});
}
</script>
ダイアログ ビュー
<button id="messageOpener">Verify</button>
<div id="messageDialog" />
<script type="text/javascript">
$(document).ready(function () {
$("#messageOpener").click(function () {
$("#messageDialog").dialog("open");
return false;
});
$("#messageDialog").dialog({
buttons: {
Retry: function () {
$(this).dialog("close");
},
Cancel: function () {
// **** ?? must close both dialogs. ****
}
},
autoOpen: false,
});
});
</script>
ダイアログを閉じるために、次のアプローチを試しました。
アプローチ 01:
$(".ui-dialog-content").dialog("close");
アプローチ 02:
$(this).dialog("close");
$("#mainDialog").dialog("close");
アプローチ 03:
$(".ui-dialog:visible").find(".dialog").dialog("close");
ただし、上記のすべてが期待どおりにダイアログを閉じず、代わりに次の JS エラーが生成されます。
不明なエラー: 初期化の前にダイアログでメソッドを呼び出すことはできません。メソッド「close」を呼び出そうとしました
v.extend.error
(無名関数)
v.extend.each
v.fn.v.each
e.fn.(無名関数)
$.dialog.buttons.Cancel
r.click
v.event.ディスパッチ
o.handle.u