奇怪的jQueryUI对话框错误

时间:2010-03-05 07:21:09

标签: jquery-ui dialog

我创建了像这样的对话

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

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

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

我只是在我的页面中覆盖它,如下所示:          .ui-dialog-titlebar {display:none; }     .ui-widget-overlay {background:#888888;不透明度:0.15;过滤器:阿尔法(不透明度= 15); }     

并且覆盖ui-widget-overlay的原因只是因为 以下不起作用     .ui-dialog-overlay {background:#888888;不透明度:0.15;过滤器:阿尔法(不透明度= 15); }

答案 1 :(得分:0)

自1.8rc3起,这已在trunk中修复。见http://dev.jqueryui.com/ticket/5263

答案 2 :(得分:0)

Everithing适用于jQuery UI 1.8