2011-12-26 92 views
2

我想动态加载内容使用jquery的​​函数。我将链接存储在链接的.rel属性中。我有它设置如下:在rel属性中动态加载链接。

<script> 
$(document).ready(function(){ 

$('.sidebar_link').click(function(){ 

    var link = this.attr('rel'); 
    event.preventDefault(); 
    $('#content').empty(); 
    $('#content').load(link '#content'); 

}); 
}); 
</script> 

<div class="main_menu"> 
<a class="sidebar_link" href="#" rel="photos.htm">Photography</a> 
<a class="sidebar_link" href="#" rel="furniture.htm">Furniture</a> 
<a class="sidebar_link" href="#" rel="services.htm">Services</a> 
</div> 
</div> 

它不工作 - 它似乎并没有被抓取的链接了rel属性和林不知道为什么。有任何想法吗?

回答

2

试试这个:而

var link = $(this).attr('rel'); 

.attr不是一个原生的JavaScript功能,它是由jQuery的,所以你必须包装this使用jQuery

这样的:

$('#content').load(link); 

你可以通过一个ID来加载片段,但是url和id需要是一个字符串,就像这样$('#content').load('photos.htm #content') photos.htm页面需要一个元素在带有ID内容的页面上。如果你只是想显示整个页面的内容,只需使用url。

1
$('#content').load(link '#content'); 

这几乎肯定会引发语法错误 - 请检查您的JavaScript控制台。我想你只是想要.load(link);

+0

之前调用就可以了jQuery的功能,您可以通过一个id加载片段,但URL和ID必须是一个字符串,像这样''AJAX/test.html中#container'' – Paul 2011-12-26 02:03:56

2

在您的点击处理程序this是一个纯DOM元素;你需要访问相对attribue

$('#content').load($(this).attr("rel"));