繁体   English   中英

没有href的锚点

[英]Anchor without href

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

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

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

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

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

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

这些不会跳:

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

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

您应该从与锚点关联的单击处理程序返回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被禁用,锚将仍然有效。

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

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

也许这也没关系:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM