我有一個帶有下一個和上一個按鈕的照片庫。如果其中一個JavaScript方法由於某種原因被某個或某個按鈕單擊時出現故障,則會爲該網址添加散列,即www.google.com#。我知道散列可以被賦予一個div id跳轉到頁面的那一部分,但是當它是空白的時候,它會跳過我的頁面幾次,我不確定它的目標是什麼。我想過試圖從網址中刪除散列,但是我必須確保在每一個動作上,這似乎是不好的做法。如果散列對頁面上的操作沒有影響,我寧願選擇。空的URL哈希導致頁面跳轉到js事件
回答
不要使用href="#"
,這是不正確的。
相反,使用href="javascript:;"
或其變體(我個人使用javascript:void(null);
)
此明確指出鏈接不轉到另一個位置,而是由JavaScript處理。
這就是我所擔心的。我知道在某些時候它已經設置爲href ='/',現在大多數都是href ='#',但改變它可能是最簡單的解決方案。 – JewrassicPark
我不明白'href =「#」'會是「不適當的」,它只是一個指向書籤的鏈接。使用'href =「javascript:;」'不會告訴瀏覽器一個腳本正在處理這個動作,它會要求'href'中的腳本找到要導航的位置。由於該腳本的值爲「未定義」,因此瀏覽器無法在任何位置導航。 – Guffa
我猜Next和Prev按鈕有像標記一樣的<a href="#" ...</a>
。在這種情況下,您可以添加事件監聽器與這些鏈接與jquery
$('#prev, #next').on({
'click': function(e) {
e.preventDefault();
}
})
並避免更改瀏覽器的位置。或者純javascript:
document.querySelectorAll('#prev, #next').addEventListener('click', function(e) {
e.preventDefault();
},false)
//Note: this code is not cross-browser
當您不想執行導航功能時,不要使用錨標籤。使用button
- 1. 當頁面跳轉時隱藏來自URL的哈希
- 2. Css導致頁面跳轉
- 3. jQuery基於哈希的導航與jquery-bbq使頁面跳轉
- 4. 得到AJAX哈希URL頁面加載
- 5. 導航到頁面使用jQuery的URL與哈希和參數
- 6. jquery移動鏈接導致頁面跳轉到頁面底部
- 7. 哈希(#)鏈接導致內容跳轉 - 爲什麼?
- 8. jQuery .focus()導致頁面跳轉
- 9. 哈希的jQuery的滾動頁面url
- 10. 在.load()頁面上追加哈希到URL頁面更新
- 11. 防止頁面跳轉 - 哈希錨標記 - 默認行爲
- 12. 設置overflow-y:hidden;導致頁面跳轉到Firefox的頂部
- 13. 歷史事件 - 哈希(#)類型的URL
- 14. 從URL中刪除哈希,在無哈希URL加載頁面,然後在不重新加載頁面的情況下將哈希添加到URL
- 15. 後退按鈕導致哈希值改變頁面陷阱javascript
- 16. fancybox2/fancybox會導致頁面跳轉到頂端
- 17. Jquery:下拉菜單導致頁面跳轉到頂部
- 18. jquery remove()函數導致跳轉到頁面頂部
- 19. 燈箱導致頁面跳轉到最後
- 20. 哈希導航URL構造
- 21. html導航頁面跳轉
- 22. Backbone.View.extend - 事件哈希
- 23. 哈希(#)的URL
- 24. JQuery的頁面跳轉到該頁面
- 25. 頁面事件'onClick'導致錯誤
- 26. 導軌分頁哈希
- 27. 哈希錨定標記導致URL中的錯誤
- 28. 使用哈希appand url而不重定向到新頁面
- 29. 單擊圖庫中的鏈接會導致頁面跳轉?
- 30. 自動跳轉到頁面
'空白散列'通常會將您的瀏覽器窗口置於頁面頂部。 – putvande
請仔細閱讀本文:http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false聽起來像您需要防止默認事件。 –
我知道阻止默認值,但如果錨標記href中的散列值不正確,那麼更容易更改,然後附加處理程序以防止默認值。我最大的問題是打破了JavaScript,所以我不想用JS解決它,如果我能避免它。 – JewrassicPark