jQuery UI 对话框 - 使用 Firefox 时出现问题

Posted

技术标签:

【中文标题】jQuery UI 对话框 - 使用 Firefox 时出现问题【英文标题】:jQuery UI Dialog Box - Problem when using Firefox 【发布时间】:2011-06-25 17:59:35 【问题描述】:

我有一些简单的 jQuery,可以在我的 Rails 应用程序中呈现页面。这是 jQuery:

$('a.popup').click(function() 
    $('<div />').appendTo('body').load($(this).attr('href') + ' form').dialog(
        title: $(this).text(),
        width: 425,
        position: 'top',
    );
    return false;
);

这里是关联的 html,带有 ERB(嵌入式 Ruby),生成锚标记:

<p><%= link_to "Add User", new_user_path, :class => "popup" %></p>

无论如何,问题是:它在 Chrome 中工作,在对话框中显示正确的页面。在 Firefox 中,对话框没有内容,只有一个标题(“添加用户”)。

有什么想法吗?谢谢!

【问题讨论】:

Firefox 中是否有任何 javascript 错误?什么版本的 JQuery? 验证您的标记。如果没有匹配的div标签等,IE和FF偶尔会放弃渲染。 @Captain,有趣..让我检查一下。 @ddagradi,1.4.2。 没有标记问题。有什么想法吗? @Harborhoffer: .load() 允许您将选择器附加到 URL 以自动提取返回的 HTML 的一部分,请参阅 api.jquery.com/load 上的“加载页面片段” 【参考方案1】:

如果没有实时示例很难说,但您可能在异步 AJAX 调用方面遇到了时间问题。尝试在回调中构建对话框:

$('a.popup').click(function() 
    var $a   = $(this);
    var $dlg = $('<div/>');
    $dlg.load($a.attr('href') + ' form', function() 
        $dlg.dialog(
            title:    $a.text(),
            width:    425,
            position: 'top'
        );
    );
    return false;
);

这样,在您将事情交给 jQuery-UI 之前,整个内容都将可用。

【讨论】:

以上是关于jQuery UI 对话框 - 使用 Firefox 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

在Wordpress中使用jQuery UI对话框

jquery-ui-dialog - 如何挂钩对话框关闭事件

jQuery UI 对话框 - 使用 Firefox 时出现问题

jquery-ui对话框自动高度问题

使用固定位置时,jQuery UI 对话框离开屏幕

不使用 <form> 标签的 jQuery UI 对话框验证