2

我只是想知道在单击带有内联代码的链接元素(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

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

4

3 回答 3

0

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

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

于 2012-04-23T18:47:43.820 回答
0

我更喜欢使用 onclick 而不是 href javascript 标记。但是,如果必须,请返回 false。它将停止浏览器的默认操作(更改 URL)。我首先知道这两个也没有不利的一面。避免使用第三个,它会导致页面在很长的页面上滚动并污染导航器的历史记录。

<a href="javascript:dostuff(); return false;">Do nothing</a>
于 2012-04-23T18:49:02.407 回答
0

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

使用 jQuery 的快速示例:http: //jsfiddle.net/5nbXT/

于 2012-04-23T19:06:24.097 回答