没有href的锚点

时间:2010-05-22 00:29:10

标签: javascript html

什么是最好的crossbrowser方式使锚没有href(javascript驱动)表现得像真正的锚?最明显的一个是使用#作为锚点,但它会使页面跳转...

5 个答案:

答案 0 :(得分:17)

无操作链接,甚至没有跳转:

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

更新:正如链接文档所暗示的那样(Ambrosia指出),由于void(0)返回undefined,因此最好将上面的代码写为:

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

当然,除非已经重新定义了undefined。

答案 1 :(得分:6)

这些不会跳转:

​<a href="#null">Click</a>
​<a href="#n">Click</a>
<a href="#undefined">Click</a>​
然而,他们是灵魂摧毁和极度丑陋。

答案 2 :(得分: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被禁用,锚点仍然可以工作。

答案 3 :(得分:4)

如果您对click事件做出反应,只需确保返回false,href中的任何内容,无论是#hash还是其他url,都将被忽略。

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

答案 4 :(得分:1)

也许这也没关系:

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