Почему этот диалог не будет закрыт во второй раз, когда он откроется.
В первый раз, когда я нажимаю кнопку, она открывается, затем через 3 секунды она закрывается.... отлично.
НО
второй раз, когда я нажимаю, чтобы открыть его, он открывается, но не закрывается
Если я использую уничтожить, чтобы закрыть, я получаю сообщение об ошибке
Ошибка: Ошибка: невозможно вызвать методы в диалоговом окне до инициализации; попытался вызвать метод "destroy"
скрипт
$(function () {
$('#btn').click(function () {
var o = function (tt, ii) {
$('<div>', {
'text': tt,
'id': ii
}).dialog();
};
var c = function (ii) {
$('#' + ii).dialog('close');
};
var magic = function () {
o('my string', 'x');
setTimeout(function () {
c('x');
}, 3000);
};
magic();
});
});
Вы создаете несколько элементов с одинаковым идентификатором
$(function () {
$('#btn').click(function () {
var $dialog = $('<div />');
var o = function (tt) {
$dialog.text(tt).dialog({
close: function(){
$dialog.remove();
}
});
};
var c = function () {
$dialog.dialog('close');
};
var magic = function () {
o('my string', 'x');
setTimeout(function () {
c('x');
}, 3000);
};
magic();
});
});
Демо: скрипка
<div>
с одинаковым идентификатором, но атрибутыid
должны быть уникальными в документе HTML.