2011-08-24 48 views
0

如何去通過AJAX加載頁面,並通過內部鏈接直接移動到particlur部分?我知道繞了正在添加#[sectionId]將網址或查詢字符串的方式。JQuery的AJAX URL參數:內部鏈接/相對鏈接

我試圖追加#linkId到href屬性值,但似乎jQuery的#字符後截斷所有字符。

語境: 我使用jQuery UI選項卡,並與面板相關的標籤。該面板包含鏈接列表 - 內容列表以及主要內容。鑑於內容的列表preceeds的主要內容,我希望能夠點擊一個鏈接,直接將相關的部分。

$('.helpNoteTabs').tabs({ 
     load: function (event, ui) { 
      $('a', ui.panel).live("click", function() { 
       $(ui.panel).load(this.href); 
       return false; 
      }); 
     }, 
     ajaxOptions: { 
      data: { dataj: "", sourceFile: sourceFileName, table: "" }, 
      cache: false, 
      type: "POST", 
      success: function (data, textStatus) { 
      } 
     } 
    }); 

我有渲染Contentents的名單如下:

<li><a href=""mocks/FetchHelpNote.asp?sourceFile=sc_mna#helpFooter"" class=""helpNoteDialogIndexLink"">" & recordset("title") & "</a></li>" 

注:我只追加了#helpFooter以上值href屬性作爲一個測試,看看是否頁腳部分向上移動。用Firebug點擊並檢查發佈的網址。我知道截斷後的#字符和字符: Post:mocks/FetchHelpNote.asp?sourceFile = sc_mna

佈局如下我的選項卡面板中。內容

列表

linkOne

linkTwo

內容。

linkOne

linkOneContent

linkTwo

linkTwoContent

我們的目標是讓最終用戶點擊鏈接,並通過內部鏈接移動到相關的部分。

+1

請顯示一些代碼 –

回答

1
#, . and others are special characters, you need to escape them with \\ 

jquery selectors

如果你希望使用任何的元字符(如「#$%&「()* +,/ :; < => @ [? ] ^`{|}〜)作爲一個名字的文字部分,你必須用兩個反斜槓來轉義字符:\\例如,如果你有一個id =「foo.bar」的元素,你可以使用選擇器$(「#foo \\。bar」)。

+0

謝謝,但這更多的是與選擇器字符串相關的URL。jQuery不允許#字符在href屬性值中嗎?我會逃避它嗎? (/([#;&,。+ *〜':「!^ $ [\]()=> | \ /]]/g,''在文檔內部調查內部鏈接的方式 – Terman

+1

如圖\\ $ 1' )'[這裏](http://forum.jquery.com/topic/add-a-jquery-selector-escape-function)。對於「href」部分,您可以使用[javascript encodeURIComponent函數](http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp) – roselan

+0

感謝URL編碼位解釋了爲什麼#字符不被允許。對於滾動方面,我想我會探討ScrollTo jQuery插件 – Terman