首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >"javascript:void(0);“vs "return false”vs "preventDefault()“

"javascript:void(0);“vs "return false”vs "preventDefault()“
EN

Stack Overflow用户
提问于 2010-08-17 08:37:42
回答 6查看 95.3K关注 0票数 75

当我想让某些链接不做任何事情而只响应javascript操作时,避免链接滚动到页面顶部边缘的最好方法是什么?

我知道几种方法,它们似乎都工作得很好:

代码语言:javascript
复制
<a href="javascript:void(0)">Hello</a>

代码语言:javascript
复制
<a id="hello" href="#">Hello</a>
<script type="text/javascript>
  $(document).ready(function() {
    $("#toto").click(function(){
      //...
      return false;
    });
  });
</script>

甚至:

代码语言:javascript
复制
<a id="hello" href="#">Hello</a>
<script type="text/javascript>
  $(document).ready(function() {
    $("#toto").click(function(event){
      event.preventDefault();          
      //...
    });
  });
</script>

你有什么偏好吗?为什么?在什么情况下?

PS:当然,上面的示例假设您使用的是jquery,但是mootools或prototype也有等价物。

EN

回答 6

Stack Overflow用户

发布于 2010-08-17 08:41:04

默认情况下,Dreamweaver使用了一个我已经开始使用的小技巧。

代码语言:javascript
复制
<a href='javascript:;'></a>

它很小,它不会绊倒和锚定,而且它是库不可知的。

票数 2
EN

Stack Overflow用户

发布于 2010-08-17 08:46:05

我倾向于使用return false,因为它让用户可以选择是否在quirksmode模式下继续该操作,如下图所示:

http://www.quirksmode.org/js/events_early.html#default

它很简单,很旧,但它工作得很好,跨浏览器,不管javascript的版本是什么。

票数 1
EN

Stack Overflow用户

发布于 2010-08-17 08:46:21

event.preventDefault()return false;是一回事-它们指示浏览器不处理事件的默认操作(在本例中,导航到所单击的锚定标记的href )。href=javascript:和它的同类是另一回事--它们导致默认的动作是“什么都不做”。

这是一个风格的问题。您是希望在onclick中完成所有工作,还是希望能够将操作同时放在onclick和href中,并依靠浏览器的功能在两者之间进行调节?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3498492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档