[英]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.