диалоговое окно не закроется после второго открытия

0

Почему этот диалог не будет закрыт во второй раз, когда он откроется.

В первый раз, когда я нажимаю кнопку, она открывается, затем через 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();
    });
});
  • 1
    Вы создаете несколько элементов <div> с одинаковым идентификатором, но атрибуты id должны быть уникальными в документе HTML.
Теги:

1 ответ

1
Лучший ответ

Вы создаете несколько элементов с одинаковым идентификатором

$(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();
    });
});

Демо: скрипка

  • 0
    Благодарю . Знаете ли вы, как бы я сделал это с идентификатором мне нужно, так как я буду добавлять нагрузки? Спасибо
  • 0
    @ Hello-World просто удалите элемент после закрытия диалога

Ещё вопросы

Сообщество Overcoder
Наверх
Меню