0

我正在使用来自 jQuery UI 的模态对话框。我想进行 Ajax 调用以在我的对话框中显示内容。

$(function(){
    $('#myLink').live("click", function(){
        $('#lbContent').dialog('open');
        var url= $(this).attr("href");
        $('div#lbContent').empty();
        $('div#lbContent').load(url);
        return false;
    });

    $('#lbContent').dialog({
        stack:true,
        bgiframe: true,
        autoOpen: false,
        height:500,
        width:700,
        modal: true,
        resizable:true
    });
});

现在,当我单击链接时,它会按预期在模式对话框中显示内容。

但是当我关闭该对话框并再次单击同一链接时,该对话框没有打开。我试图在两者之间发出警报。

当我刷新页面并单击链接时,它会按预期工作。

4

3 回答 3

1

感谢彼得编辑我最初的评论。但是,在对此进行进一步调查后,我发现 Shruti 的问题对于动态内容来说是一个真正的问题。我什至已经复制了jitter的链接。

问题是也使用 jQuery 文件的动态内容。如果我使用访问服务器的 URL 并使用 Cold Fusion 页面从数据库请求数据,我会得到与 Shruti 相同的结果,它第一次有效,但后续访问无效。如果我使用在对话框中显示图像的简单 HTML 页面,它将永远有效。

我从动态内容页面中删除了 jQuery 函数,它每次都有效。因此,如果在正在加载的 url 中也使用了 jQuery,那么 jQuery 就会出现问题。

++++++++++++++++++++++++++++++++++++++++++++++++++

好的,几分钟后修补这个......

如果动态页面使用与主页面相同的 jQuery 文件,则不要在动态脚本中加载这些文件。也就是说,主页是唯一应该加载 jQuery 文件的页面,而不是您尝试在“主页”上的元素中加载的动态页面。这样做的缺点是独立环境中的动态页面将无法工作,因为您没有调用 jQuery UI。

这有点奇怪,因为我可以在不修改任何内容的情况下显示和隐藏具有动态内容的标准 div 标签。但是当我想在 jQuery 中使用对话框功能时,一切都会中断。嗯!!仍然是一个非常有价值的 JavaScript 例程库——只需要稍微调整一下。那是软件。

于 2012-03-16T22:09:09.370 回答
0

对于那些为仍在使用 IE 7.0 的系统进行开发的人来说,这只是一句话。

$('#lbContent').dialog({
    stack:true,
    bgiframe: true,
    autoOpen: false,
    height:500,
    width:700,
    modal: true,
    resizable:true,

对话框参数列表中的最后一个逗号将导致代码不适用于 IE 7.0。

于 2012-03-16T20:35:36.067 回答
0

无法重现您的问题。考虑添加一个由 javascript + html 代码组成的压缩示例,它可以一致地重现问题。

还要添加您使用的浏览器。如果错误控制台中显示任何错误怎么办。

检查http://jsbin.com/opigo以获取基于您的代码的工作示例。

http://jsbin.com/opigo/edit检查代码片段

于 2009-11-30T08:58:07.640 回答