没有href的锚点

Sib*_*Guy 9 html javascript

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

mr.*_*r.b 18

一个do-nothing链接,甚至没有跳转:

<a href="javascript:void(0)">link</a>
Run Code Online (Sandbox Code Playgroud)

更新:正如链接文档所暗示的那样(Ambrosia指出),自void(0)返回以来undefined,最好将上面的代码写成:

<a href="javascript:undefined">link</a>
Run Code Online (Sandbox Code Playgroud)

当然,除非重新定义了undefined.


kar*_*m79 7

这些不会跳:

?<a href="#null">Click</a>
?<a href="#n">Click</a>
<a href="#undefined">Click</a>?
Run Code Online (Sandbox Code Playgroud)

然而,他们是灵魂摧毁和非常丑陋.


seb*_*eli 6

您应该从与锚点关联的单击处理程序返回false.鉴于HTML:

<a id="example" href="/whatever"/>
Run Code Online (Sandbox Code Playgroud)

JS应该看起来像:

document.getElementById('example').onclick = customAnchorReturn;
function customAnchorReturn() {
    // do stuff
    return false;
}
Run Code Online (Sandbox Code Playgroud)

或使用jQuery:

$('a#example').click(function(){
    // do stuff
    return false;
});
Run Code Online (Sandbox Code Playgroud)

通过这种方式,JS将是不显眼的,如果JS被禁用,锚将仍然有效.