关于javascript:void(0);,herf=”#”以及在IE6下,click事件失效的问题

经常看到一些网页中,超链接标签中<a href=”#”> herf中的“#”改成javascript:void(0);因为#包含了一个位置信息,默认的锚点是#top 也就是网页的上端.而javascript:void(0)  仅仅表示一个死链接
这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首,而javascript:void(0) 则不是如此.

一般采用ajax技术,才有这种形式,而我们的项目只是加了个click事件,处理一些验证逻辑,之后跳转。。。问题出来了,在IE6下面,click事件失效。。。

网上搜到这么个解释:

这里的href=”javascript:;或javascript:void(0或null);” 本身的意思就是执行空的事件。而响应顺序是从onclick开始,然后再进入href。这里的问题就是执行了onclick链接事件后又执行href的空响应。所以导致失效。
解决办法就是在onclick中最后加上return false;就搞定了(意思就是不执行后面的href中的事件)。至于为什么其它浏览器中不加也可以的问题,那就可以说明“其它浏览器中后面默认的就是跟上return false;而IE6是return true;”注意这个结论还有待验证

return false,这个不行。。。

还有种解决方案,用###。。。

好了问题解决了。。

但回过头来,有这么复杂吗。为什么要用<a>标签,用个<span>问题不就解决了吗。。。

有时候,要从多个角度,思考问题。。偶尔跳出来,看问题,往往有新的思路……

原文地址:https://www.cnblogs.com/guanjie20/p/1952212.html