2010-05-22 70 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被禁用锚将仍然工作。