簡體   English   中英

在內部鏈接上,例如到#id,是否觸發了一個事件,可以將處理程序附加到該事件?

[英]On an internal link, e.g. to #id is there an event fired that I can attach a handler to?

我有一個網頁,上面有各種“內部”鏈接,這些鏈接指向具有各種ID的各種對象。 該網頁還具有滾動事件的附件,以在滾動一定數量時隱藏/顯示某些項目。

單擊這些鏈接之一后,當頁面導航到另一部分時,我想觸發滾動事件處理程序。

在導航之前會觸發click事件,因此我無法對其進行附加操作,因為它需要根據新位置進行決策。

hashchange事件如何? 這些天得到了廣泛的支持 (以防萬一,Modernizr進行了測試並進行了許多填充測試...)

順便說一句,如果要保存位置,請查看HTML5歷史記錄API history.pushState應該可以解決問題。

單擊單個頁面上的哈希鏈接時,不會觸發“ onChange”事件。 當代(AJAXed)頁面監視哈希值更改的唯一方法是使用時間間隔,此后調用JavaScript函數進行檢查。

因此,換句話說,唯一的可能性是及時保存上一個哈希位置( document.location.hash ),如果不滿足某些條件,則導航回到舊位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM