У меня есть диалог JQuery пользовательского интерфейса, который загружает его содержимое с помощью AJAX:Закрыть диалоговое окно изнутри AJAX загружено содержание
$('#register').click(function(e) {
var tag = $('<div></div>');
$.ajax({
url: 'signup.html',
success: function(data) {
tag.html(data).dialog({modal: true}).dialog('open');
}
});
e.preventDefault();
return false;
});
У меня есть второй сценарий, в рамках содержания, которое, как предполагается, чтобы закрыть диалоговое окно, когда кнопка отправки нажимается
$(function() {
$('form #submit').click(function(e) {
$(this).parents('.ui-dialog').dialog('close');
e.preventDefault();
return false;
});
});
Когда я нажмите кнопку отправки, я получаю ошибку:
Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'
Что мне не хватает, чтобы я мог закрыть диалоговое окно из содержимого, загруженного через ajax?
Где находится тег, прикрепленный к DOM? –
Я не добавляю его вручную, jquery добавляет его в 'body' автоматически. – bizzehdee
Да, конечно. Вы должны вызвать диалог («закрыть») в элементе 'tag', а не в' $ ('. Ui-dialog') '. Вы можете найти его внутри '$ ('. Ui-dialog')' elemnt like '$ ('. Ui-dialog # signup-id')', но вам нужно изменить переменную 'tag' на' tag = $ ('
'); ' –