想象一下下面的標記:讓jQuery在讀取href之前等待href更改?
<a href="#link01">1</a>
<a href="#link02">2</a>
和:
$('a').click(function(){
var href = $(location).attr('href'),
hrefLenght = href.length,
hrefPos = href.indexOf("#"),
hrefPage = href.slice(hrefPos+1);
alert(hrefPage);
});
現在,會發生什麼你點擊一個鏈接是jQuery的提醒hrefPage
這是那裏你點擊了鏈接,不以前後如預期的那樣,在之後的。因此:
1)我位於http://www.example.com/#link01
2)單擊鏈接
3,結果)link01
是呼應
3,預期)link02
是呼應
任何想法如何解決這一問題?
編輯:我爲什麼使用位置而不是href?因爲我希望前面的代碼也可以在頁面加載href時沒有任何被單擊的情況下工作,我不認爲爲同一個進程編寫兩段代碼是一個好主意嗎?
你trrying實施「頁面位置發生改變, 「處理程序與鏈接點擊處理程序。它不這樣工作。對於初學者來說,'click'會觸發_first_,但還有其他原因無法使用。只需要鏈接的「href」屬性。 – 2012-01-17 16:27:04
編輯了這個問題。 – 2012-01-17 16:28:41
不,鏈接的點擊處理程序不會因爲您加載頁面而奇蹟般地觸發。如果你想避免代碼重複,把邏輯封裝在一個函數中,並在多個處理程序中調用它。 – 2012-01-17 18:59:41