对话框在第二次打开后不会关闭

时间:2013-11-20 13:14:22

标签: jquery jquery-ui

为什么此对话框第二次打开时不会关闭。

我第一次点击按钮然后打开,然后3秒后它关闭....完美。

BUT

我第二次点击打开它,它会打开但不会关闭

如果我使用destroy来关闭,那么我会收到错误

错误:错误:在初始化之前无法调用对话框上的方法;试图调用方法'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 个答案:

答案 0 :(得分:1)

您正在创建具有相同ID的多个元素

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

演示:Fiddle