2012-12-11 30 views
0

我试图通过jQuery colorbox加载一个名为#submit-text-form的表单。但是,colorbox最终会加载原始链接所针对的整个页面。我按照指示here,但它仍然加载整个页面。关于我可能做错什么的想法?jQuery Colorbox:通过ajax加载单个ID问题(不是整页)

$(function(){ 
$('#submit-link').colorbox({ 
opacity: 0.3, 
transition: 'fade', 
href: $("#submit-link").attr('href') + "#submit-text-form", 
}); 
}); 
+1

在目标页面上是否存在具有该ID的元素? –

+0

@当然是:p – Michelle

+0

有没有在萤火虫中显示任何错误 – muthu

回答

1

试试这个:

$(function(){ 
$('#submit-link').colorbox({ 
opacity: 0.3, 
transition: 'fade', 
href: $("#submit-link").attr('href') + " #submit-text-form", 
}); 
}) 

需要有对你的选择" #submit-text-form之前的空间。 Colorbox使用jQuery的load()方法处理ajax,所以它的工作原理是一样的。

+0

非常感谢!这样一个简单的解决方案,它的工作:D – Michelle

0

当您打开应该直接从浏览器显示在colorbox中的页面时,应该只看到里面的页面。如果没有,并且仍然需要加载整个页面并显示其中的一部分,使用ajax获取数据,在成功获取DOM选择器所需的部分后,将其显示在colorbox中。

像这样:

$.get($("#submit-link").attr('href'), 
    function(response) { 
     //Load the AJAX response into a jQuery variable 
     var $html = $(response); 
     //Get the portion which you need to show inside the colorbox 
     $html.find('#submit-text-form').colorbox({ opacity: 0.3, transition: 'fade'); 
     //Append it to body. (I didn't use colorbox before.) 
     $('body').append($html); 
}); 

注意:我没有测试它,我没有颜色框前使用,但是这是你想要我的思维方式。

+0

我不遵循最后一句:/ – Michelle