2011-12-26 51 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"));