2013-01-07 63 views
0

On - window.location.hash - Change?是否有內部頁的回調函數鏈接

有關哈希改變上述問題的談判,而有關回撥這個問題的會談時內部鏈接被點擊

我在指向另一個頁面許多環節使用#個鏈接在同一頁面中的位置。每當我點擊一個這樣的鏈接,頁面會滾動到該位置。但是我需要在自動滾動發生後手動調整滾動。所以想知道這種事件是否有回調函數?

此外,如果在初始頁面加載中存在#標記(不僅僅是當它通過鏈接單擊時)會觸發事件,當再次單擊相同的鏈接時(hashchange事件不會在此觸發情況)

+2

請記住,如果用戶單擊哈希鏈接兩次,哈希不會更改。 – Cerbrus

+1

@Cerbrus好點;這與簡單檢測哈希變化不完全相同。 – apsillers

+0

[有一個衆所周知的插件來支持hashchange事件](http://benalman.com/projects/jquery-hashchange-plugin/)。 – zzzzBov

回答

0

您可以通過調用這個元素的函數註冊一個:

addEventListener('click', function(){/*update your stuff here/*});

jQuery中

,那就更簡單了

每次點擊鏈接後都會更新。

0

沒有我知道的特定回調函數,但可以將函數綁定到window.onscroll(https://developer.mozilla.org/en-US/docs/DOM/window.onscroll)事件。這將檢測何時窗口已被點擊鏈接滾動,並可讓您進行調整。那麼唯一的問題是,當用戶正常滾動頁面時,它也會觸發。

除此之外,你會添加一個類到所有的#鏈接,這將允許你檢測一個被點擊的時候。在jQuery中:

$("a.HASH-LINK-CLASS").on("click", function (event) { ... }); 
+0

如果#tag出現在初始頁面的URL本身,你的答案不起作用 – emaillenin

+0

真的,在這種情況下,他可以在'window.location.hash'上使用測試 – phonicx

相關問題