【问题标题】:dialog will not close after the second time it is opened对话框在第二次打开后不会关闭
【发布时间】:2013-11-20 13:14:22
【问题描述】:

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

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

但是

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

如果我使用 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();
    });
});

【问题讨论】:

  • 您正在创建多个具有相同 id 的 &lt;div&gt; 元素,但 id 属性在 HTML 文档中必须是唯一的。

标签: jquery jquery-ui


【解决方案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

【讨论】:

  • 谢谢。你知道我将如何使用我需要的 ID 来完成它,因为我将添加负载吗?谢谢
  • @Hello-World 只需在对话框关闭后删除元素
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多