当前位置: 首页 > 面试题库 >

如何将AJAX内容加载到当前的Colorbox窗口中?

呼延博易
2023-03-14
问题内容

我已经连续三天在寻找答案。问题是我有一个页面,该页面上的链接应使用AJAX内容加载Colorbox,而AJAX内容又包含应在同一Colorbox模态窗口中加载的链接。到目前为止,我设法通过以下方式使其(部分地)起作用:

<script type="text/javascript">
    $(document).ready(function(){
        $("a[rel='open_ajax']").live('click', function() {
            $.colorbox({
                href:$(this).attr('href')
            });
            return false;
        });
    });
</script>

如果单击链接,它将加载一个Colorbox窗口,但是如果单击该链接,它将在此窗口中打开另一个Colorbox窗口。我希望将内容加载到当前内容中。将不胜感激。谢谢!

主窗口中的PS链接:

<a title="Client Details" rel="open_ajax" href="http://localhost/client/details/123">Client Details...</a>

而且Colorbox中的链接都是相同的(只是分页):

<a rel="open_ajax" href="http://localhost/client/details/123/1">1</a>
<a rel="open_ajax" href="http://localhost/client/details/123/2">2</a>
<a rel="open_ajax" href="http://localhost/client/details/123/3">3</a>
<a rel="open_ajax" href="http://localhost/client/details/123/4">4</a>
<a rel="open_ajax" href="http://localhost/client/details/123/5">5</a>

问题答案:

如果您需要将内容加载到同一Colorbox中而不是打开新实例,那么我将首先确保打开Colorbox的事件处理程序上下文是互斥的,并且不要钩接到Colorbox中的’open_ajax’元素上。

像这样:

<script type="text/javascript">
    $(document).ready(function(){
        $("a[rel='open_ajax']:not(#colorbox a[rel='open_ajax'])").live('click', function() {
            $.colorbox({
                href:$(this).attr('href')
            });
            return false;
        });
    });
</script>

如果上述方法不起作用,请尝试使选择器更具体/唯一。

然后将新内容中的AJAX直接放入您已经打开的Colorbox中。

像这样:

$('#cboxLoadedContent a[rel="open_ajax"]').live('click', function(e){
    // prevent default behaviour
    e.preventDefault();

    var url = $(this).attr('href');

    $.ajax({
        type: 'GET',
        url: url,
        dataType: 'html',
        cache: true,
        beforeSend: function() {
            $('#cboxLoadedContent').empty();
            $('#cboxLoadingGraphic').show();
        },
        complete: function() {
            $('#cboxLoadingGraphic').hide();
        },
        success: function(data) {                  
            $('#cboxLoadedContent').append(data);
        }
    });

});


 类似资料:
  • 我尝试使用OpenGL绘制贝塞尔曲面。我的程序读取一个输入文件,其中包含用于绘图的采样点数量、用于表面着色的控制点和调色板。它必须输出一个带有曲面图的新窗口,我可以在其中操纵曲面和控制点的属性。 从Bernstein多项式生成的点被三角化,并通过从三角形的最小和最大高度映射它来按调色板分配颜色。 不幸的是,它打开了一个窗口,其中当前窗口的一部分在操作系统中打开,而没有为surface创建新界面。

  • 问题内容: 这种情况: 用户将其zip插入输入字段,然后单击魔术按钮时,他会看到最接近其位置的商店。我称该服务很好,并以一些AJAX优点加载了该服务。一切都很好。 现在,我希望将结果显示在Fancybox中,而不是将结果插入页面上的某处。我根本无法完成这项工作。 JavaScript: 我希望Fancybox弹出并显示URL()中的标记。Fancybox已加载,但不是内容,而是一个字符串,内容为“

  • 问题内容: 我不知道如何解决这个问题,我尝试阅读许多文章,但没有人回答。 我需要用一个已经编码的页面(在同一域内)打开一个新窗口,并添加一些内容。 问题是,如果我使用的页面尚未加载,或者它覆盖了所有内容,则仅显示通过写入添加的代码。 是我需要附加的代码。 我需要它至少可以在Firefox,IE和GC上运行。 提前致谢。如果我需要使用JQuery,这不是问题。 问题答案: 在.html中: 在:

  • 问题内容: 几天前,我发布了一个有关如何在我正在开发的自定义Wordpress模板中滚动到“单个帖子 ”的问题。我需要的是在单击特定链接时将单个帖子加载到定义的DIV中,然后向下滚动到包含新加载内容的DIV。考虑到Wordpress或任何其他CMS的动态内容性质,该链接的URL不能是绝对的。 不幸的是,那时没有任何具体的答案,所以我决定稍作观察。由于主要问题是动态加载内容,因此我决定放大如何在Wo

  • 问题内容: 我的意思是……让我们只是发出AJAX请求,然后将结果插入div#result中。 在后端脚本中,使用 ob_flush() 发送标头,但直到请求终止(使用 exit 或 ob_flush_end )后才终止请求 仅当请求终止( exit 或 ob_flush_end )时,内容才会加载到#result中,否则,每次脚本由 ob_flush 发送标头时,内容都会加载到 #result中

  • 问题内容: 好的,所以我对ajax和从外部加载内容还很陌生,希望对我的问题有任何见解。 我目前有一个隐藏的div,它是空的,单击链接后应该在其中加载ajax内容。 我目前有一个链接列表,所有链接都具有相同的类,并且我想在单击空白div时进行幻灯片切换,然后从链接要访问的页面中加载内容。 链接: 当前的jQuery: 刚接触Ajax并加载外部内容时,我想知道如何从位于标签中的链接页面加载内容。因此,