我有一個標準的鏈路設置可以在點擊防止標準的href/jquery點擊組合從追加#到網址?
<a href="#" class="dosomething">Click Me</a>
所有被點擊的URL僞時,除了偉大工程,當通過jQuery觸發一個事件,它附加一個包括hashtag(#)的URL。這個hashtag影響我的頁面在用戶決定稍後刷新頁面時如何重新加載,所以我想不要將hashtag附加到url。
這是可能的,同時仍然允許我正常的jquery發射?
謝謝!
我有一個標準的鏈路設置可以在點擊防止標準的href/jquery點擊組合從追加#到網址?
<a href="#" class="dosomething">Click Me</a>
所有被點擊的URL僞時,除了偉大工程,當通過jQuery觸發一個事件,它附加一個包括hashtag(#)的URL。這個hashtag影響我的頁面在用戶決定稍後刷新頁面時如何重新加載,所以我想不要將hashtag附加到url。
這是可能的,同時仍然允許我正常的jquery發射?
謝謝!
是否需要成爲一個href呢?你可以這樣做:
<span class="dosomething">Click me</span>
。
.dosomething{cursor:pointer}
在的你點擊功能,使用結束:
return false;
您應該return false;
從A
標籤的事件處理程序
或者,使用
<a href="javascript: void(0);" class="dosomething">Click Me</a>
對於那些誰認爲javascript: void(0)
是不好的做法
如果使用href='#'
,你必須照顧兩件事
// one
function fn() {
// code
return false;
}
// two
<a href="#" onclick="return fn();">click</a>
如果你忘了,只是寫onclick="fn();"
它不會工作
爲什麼我用javascript: void(0);
另一件事是,如果函數遇到/拋出一個錯誤,它不會回報false
所以如果你是一個單獨的開發人員,那麼你可以明確地做出自己的選擇,但是如果你作爲一個團隊工作,你必須聲明:
使用href =「#」,確保onclick始終包含返回false;最後,任何調用的函數都不會拋出錯誤,並且如果您將函數動態添加到onclick屬性,請確保不會拋出錯誤,並返回false。
OR
使用href="javascript:void(0)"
Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?
'javascript:void(0)'是不好的實踐。在hrefs上(並且大多數時間我認爲) – VeXii 2013-02-20 17:42:53
@VeXii可能是更新後的答案,將解釋爲什麼我使用了'javascript:void(0)' – 2013-02-20 17:53:20
@VeXii在這一點上絕對達成一致。但問題不在於改進代碼,所以我只給出瞭解決問題的答案。 – 2013-02-20 17:59:08
自作聰明anwser:使用一個按鈕。
替代:你必須確保觸發的preventDefault在您選擇jQuery的事件處理程序
$("dosomthing").click(function(e){
//make magic happen
e.preventDefault()
})
這適用於HTML表單提交,多數民衆贊成這樣和。按鈕的事情
值得注意的是只使用了鏈接標籤(財產以後,改變的URL)和按鈕等各種互動的最佳實踐。
搜索漫遊器和其他網絡爬蟲期望一個標籤鏈接到其他html文檔(超鏈接),直到幷包括html 4.或當前文檔中的其他點。
使用'SPAN'不會給他跨瀏覽器CSS懸停效果 – 2013-02-20 18:10:03
什麼瀏覽器/懸停問題與跨度而不是a?這不是我以前遇到過的。 – Fraser 2013-02-21 08:42:56