单击链接时跳过更改位置

时间:2012-04-23 18:41:09

标签: javascript html dom html5-video href

当我点击带有内联代码的链接元素(A)时浏览器更改位置的行为的首选方法是什么?

<a href="javascript:void(0)">void(0)</a> // I have always used this one

<a href="javascript:;">:;</a> // This one is simple and now a days my favourite

<a href="#">#</a> // Scroll to the top

或者你是怎么做的,为什么?什么是最好的实践?

3 个答案:

答案 0 :(得分:0)

这取决于您想要跳过默认行为的原因。使用上面显示的方法,链接不是很有用,因为它们的href属性不包含任何信息。它们只是占位符......你也可以引用一个不存在的ID,<a href="#phlogiston">dummy link</a>,点击时它什么也不做。

如果您希望链接具有正常的href属性,但在单击时执行其他操作,则不会内联。相反,只要链接使用页面加载的脚本触发click事件,您就会调用event.preventDefault()方法。另请参阅此答案:event.preventDefault() vs. return false

答案 1 :(得分:0)

我更喜欢使用onclick而不是href javascript标记。但如果必须,请返回false。它将停止浏览器的默认操作(更改URL)。对于这两个人来说,我也没有意识到这一点。避免使用第三个,它可能导致页面在非常长的页面上滚动并污染导航器历史记录。

<a href="javascript:dostuff(); return false;">Do nothing</a>

答案 2 :(得分:0)

就个人而言,我更喜欢向链接“注入”动作,而不是混合使用js和html。您不必以这种方式扫描HTML以获取javascript行为。

使用jQuery的简单示例:http://jsfiddle.net/5nbXT/