【问题标题】:Strange jQueryUI dialog error奇怪的 jQueryUI 对话框错误
【发布时间】:2010-03-05 07:21:09
【问题描述】:

我创建了这样的对话框

$('#add_error').click(function(e) {
        $('<div>')
            .load('/someaction/format/html/')
            .dialog({
                title: 'Some title',
                modal: true,
                width: 385,
                close: function() {
                     $(this).remove();
                }
            });

        e.preventDefault();
    });

它工作正常,但每隔三分之一(不确定是否真的是第三次)我点击链接打开对话框时,它会在 firebug 中失败并出现错误

"$("").addClass("ui-widget-overlay") 未定义"

在 dialog.js 中是一段代码:

var $el = (this.oldInstances.length ? this.oldInstances.splice(0, 1)[0] : $('<div></div>').addClass('ui-widget-overlay'))
                .appendTo(document.body)
                .css({
                    width: this.width(),
                    height: this.height()
                });

在create:function(dialog)方法下。

奇怪的是,当我删除时,这个错误并没有发生

close: function() {
                     $(this).remove();
                }

有什么想法吗?

【问题讨论】:

  • 您运行的是哪个版本的 JQuery / JQuery UI?

标签: jquery-ui dialog


【解决方案1】:

自 1.8rc3 以来,此问题已在主干中修复。见http://dev.jqueryui.com/ticket/5263

【讨论】:

    【解决方案2】:

    我认为它必须以某种奇怪的方式连接到:ui-widget-overlay。

    我只是在我的页面中覆盖它,如下所示: .ui-dialog-titlebar { 显示:无; } .ui-widget-overlay { 背景:#888888;不透明度:.15;过滤器:Alpha(不透明度=15); }

    而重写 ui-widget-overlay 的原因仅仅是因为 以下不起作用 .ui-dialog-overlay { 背景:#888888;不透明度:.15;过滤器:Alpha(不透明度=15); }

    【讨论】:

      【解决方案3】:

      一切都适用于 jQuery UI 1.8

      【讨论】:

        猜你喜欢
        • 2012-10-07
        • 1970-01-01
        • 1970-01-01
        • 2014-10-06
        • 1970-01-01
        • 1970-01-01
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多