2010-05-22 72 views
7

什麼是最好的crossbrowser方式來做沒有href(JavaScript驅動)的錨定行爲像真正的錨點?最明顯的一個是使用#錨,但它使頁面跳轉......沒有href的錨定

+3

表現爲什麼意義上的錨?鼠標懸停在光標上並加下劃線?如果是這樣,最好通過CSS來完成。 – R0MANARMY 2010-05-22 00:48:45

回答

17

一個什麼都不做鏈接,甚至不跳:

<a href="javascript:void(0)">link</a> 

更新:作爲鏈接的文檔說明(由豚草指出),因爲void(0)返回undefined,不如實際寫入上面的代碼爲:

<a href="javascript:undefined">link</a> 

除非,當然,未定義已被重新定義。

+1

這不是void方法的意圖。 [來源](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void) – SimonDever 2013-03-21 03:18:24

5

這些不會跳:

​<a href="#null">Click</a> 
​<a href="#n">Click</a> 
<a href="#undefined">Click</a>​ 

他們,然而,靈魂摧毀,非常難看。

+8

+1「靈魂毀滅」 – 2012-03-05 13:01:25

3

如果您對點擊事件作出反應,只要確保您返回false,無論是在href中,無論是#hash還是其他網址,都將被忽略。

<a href="#anything" onclick="doSomething(); return false;">link</a> 
1

也許這也沒關係:

<a href="javascript:;">link</a> 
6

你應該從與錨單擊處理程序返回false。由於HTML:

<a id="example" href="/whatever"/> 

的JS應該是這樣的:

document.getElementById('example').onclick = customAnchorReturn; 
function customAnchorReturn() { 
    // do stuff 
    return false; 
} 

或使用jQuery:

$('a#example').click(function(){ 
    // do stuff 
    return false; 
}); 

這種方式,JS會顯得突兀並且如果JS被禁用錨將仍然工作。