Jquery plugins jQuery更改colorbox的内容

Jquery plugins jQuery更改colorbox的内容,jquery-plugins,colorbox,Jquery Plugins,Colorbox,我已经试过用类似的题目提问,但都不管用。 (例如:) 我有主页:(包括jQuery 1.6.1) jQuery(函数(){ $(“#aLink”).colorbox(); $('#blub a[rel=“open_ajax”]”)。live('click',函数(e){ e、 预防默认值(); var url=$(this.attr('href'); $.ajax({ 键入:“GET”, url:url, 数据类型:“html”, cache:false, beforeSend:functio

我已经试过用类似的题目提问,但都不管用。 (例如:)

我有主页:(包括jQuery 1.6.1)


jQuery(函数(){
$(“#aLink”).colorbox();
$('#blub a[rel=“open_ajax”]”)。live('click',函数(e){
e、 预防默认值();
var url=$(this.attr('href');
$.ajax({
键入:“GET”,
url:url,
数据类型:“html”,
cache:false,
beforeSend:function(){
//$('#cboxContent').empty();
$('#cboxLoadedContent').empty();
$('cboxLoadingGraphic').show();
},
完成:函数(){
$('#cboxLoadingGraphic').hide();
},
成功:功能(数据){
$('#cboxLoadedContent')。追加(数据);
}
});
});
});
这很好,1.html的(简单)内容加载到colorbox中:

1.html:

<div id="blub">
    <a rel="open_ajax" href="2.html">Change Content</a>
</div>

现在我想通过点击链接来更改内容。这不管用。 如果我得到一个额外的色盒,或者什么都没有发生


塔克斯

您可以使用jquery live()函数监视对现有和将来的colorbox链接的单击。另外,我建议您不要使用
rel
作为选择器。该属性用于SEO。在本例中,我将选择器从rel属性移动到class属性:

$(document).ready(function() {
    $('a.open_ajax').live('click', function(){
        $.colorbox({
            open:true,
            href: this.href
            //plus any other interesting options    
        });

        return false;
    });
});
然后确保您想要触发新colorbox内容的任何内容都具有“open_ajax”类和href。例如:

jQuery 1.7+的更新

对于jQuery 1.7,由于live()已被弃用,您需要这样做:

$(document).on("click", "a.open_ajax", function() {
    //everything that was in the live() callback above
});

你的意思是当colorbox打开时(内容来自1.html),它有到2.html的链接吗?因此,基本上,您希望在colorbox内有一个链接来更改colorbox的内容。。是否正确?1.html的内容加载到颜色框中。“更改内容”链接已在此处阅读。我点击链接。。。现在我希望2.html的内容将加载到现有的colorboxHi中,这不起作用。现在,2.html的内容在第二个颜色框中(在第一个颜色框后面),是的,它是。。我将用我使用的完整代码更新它。它不会打开新的颜色框,但会将内容加载到其中,然后调整现有颜色框的大小。我真的很抱歉,但这不是我可以在快速评论中回答的问题,它也不符合此答案。我得走了。但这是一个很好的问题。你应该开始一个新问题,如果在我之前没有人问过,那么我会考虑一下。PS-在我结束之前,你编辑了你的评论并删除了你的问题,但实际上,你应该问一下。我相信这将是很好的搜索引擎功能。嗨,下面是后续内容:
$(document).on("click", "a.open_ajax", function() {
    //everything that was in the live() callback above
});