Im имея вопрос, где мои диалоговые нагрузки JQuery UI несколько раз поверх себя:диалоговое окно 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
Именно то, что описано здесь: Why does my modal jQuery dialog open multiple times?
я следующее решение работал этот человек, но это не сработало для меня. Решение, которое работало для этого человека было:
1) инициализировать диалог вне функции 2) открытым только на успешный обратный вызов от нагрузки()
Как вы можете видеть, что я делать и то и другое в следующем но проблема все еще сохраняется. Пожалуйста, помогите: (В общем, я загружаю диалог по щелчку ссылки. Затем, когда нажата кнопка «Регистр» внутри этого диалогового окна, я загружаю еще одно небольшое диалоговое окно подтверждения с помощью кнопки «ОК», которая закрывает оба диалога .)
$(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");
});
}
Поскольку вы не воссоздавать диалоговые окна, вам не нужно, чтобы удалить их. Является ли этот код внутри какой-либо другой функции, которая запускается более одного раза? –
ok Я удалил вызов remove(). И нет ни в какой другой функции. Все находится непосредственно внутри $ (document) .ready, за исключением функции openInDialog, которая находится непосредственно за ее пределами. Я скачал расширение визуальной студии, которое будет соответствовать скобкам js. – parliament