У меня проблема с тем, что диалоговое окно my jquery UI загружается несколько раз поверх себя:
click -> opens dialog(1 time) -> close dialog
click - > opens dialog(2 times) -> close dialog
click - > opens dialog(4 times) -> close dialog
click - > opens dialog(8 times) -> close dialog
Именно то, что описано здесь: Почему мой модальный диалог jQuery открывается несколько раз?
Я выбрал следующее решение, но у меня оно не сработало. Решение, которое работало для этого человека, было:
1) инициализировать диалог вне функции
2) открывать только при успешном обратном вызове из load ()
Как вы можете видеть, я делаю обе вещи в следующем коде, но проблема все еще сохраняется. Пожалуйста помоги:
(Между прочим, общая структура заключается в том, что я загружаю диалоговое окно по щелчку ссылки. Затем, когда нажимается кнопка «Регистрация» внутри этого диалогового окна, я загружаю другое небольшое диалоговое окно подтверждения сверху с помощью кнопки «ОК», которая закрывает оба диалоговых окна.)
$(document).ready(){
var $registerDialogHandle = null;
var $registerStatusDialogHandle = null;
$registerDialogHandle = $('<div></div>').html("").dialog({
autoOpen: false, modal: true, width: 470, height: 552,
buttons: {
"Register": function () {
if ($('#registerForm').validate().form()) {
$.ajax({
...ajax settings...
success: function () {
openInDialog($registerStatusDialogHandle, "/Account/RegisterStatus");
}
});
}
}
}
});
$registerStatusDialogHandle = $('<div></div>').html("").dialog({
autoOpen: false, modal: true, width: 365, height: 165,
buttons: {
"OK": function () {
$(this).dialog("close");
$registerDialogHandle.dialog("close");
}
}
});
$('.registerLink').live("click", function () {
openInDialog($registerDialogHandle, "/Account/Register?path=_RegisterPartial");
});
} /*End of document.ready()*/
function openInDialog(dialog, target) {
var $url = target;
var $dialog = dialog;
$dialog.empty();
$dialog.dialog("option", "position", "center").load($url, function () {
$dialog.dialog("open");
});
}