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

Yar*_*ius 6 ajax jquery colorbox

我已经连续三天都在寻找答案了.问题是我有一个页面,链接上应该加载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>
Run Code Online (Sandbox Code Playgroud)

如果我点击一个链接,它会加载一个Colorbox窗口,但是在这个窗口中,如果我点击它的链接,它会打开另一个Colorbox窗口.我希望将内容加载到当前内容中.会不会有任何想法.感谢名单!

主窗口中的PS链接:

<a title="Client Details" rel="open_ajax" href="http://localhost/client/details/123">Client Details...</a>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Rya*_*P13 16

如果您需要将内容加载到相同的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>
Run Code Online (Sandbox Code Playgroud)

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

然后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);
        }
    });

});
Run Code Online (Sandbox Code Playgroud)