首页  >  文章  >  web前端  >  分享关于a标签中添加点击事件的问题及解决方案

分享关于a标签中添加点击事件的问题及解决方案

零下一度
零下一度原创
2017-05-10 15:16:392956浏览

  昨天做修改页面跳转时遇到一个问题,如果a标签的"href"属性为空的话,比如这样90f240e612271bbb191ef9747788548c修改5db79b134e9f6b82c0b36e0489ee08ed,这时当我点击修改链接时并没有给我跳到对应修改页面,而是只在本页面进行了刷新操作;如果写成b7837e734e87059a6ca38c6bf5f88aa2,点击完全没有反应。后来和同事讨论后发现改为43af24f4096c98ad7266098ba20ce8fe修改5db79b134e9f6b82c0b36e0489ee08ed,即在"href"属性中添加"javascript:void(0)"或者"#"即可以实现页面的跳转,所以个人认为"a"标签中的"href"属性值不应该为空。

  为了便于大家学习,本人整理了几种在"a"标签中使用点击事件的方法,如下所示:

<a href="JavaScript:js_method();"</a>

这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在href里面执行javascript语句

<a href="javascript:void(0);" onclick="js_method()"</a>

这种方法是很多网站最常用的方法,也是最周全的方法,onclick方法负责执行js函数,而void是一个操作符,void(0)返回undefined,地址不发生跳转。而且这种方法不会像第一种方法一样直接将js方法暴露在浏览器的状态栏。

3.<a href="javascript:;" onclick="js_method()"</a>

这种方法跟2种类似,区别只是执行了一条空的js代码。

4.<a href="#" onclick="js_method()"</a>

这种方法也是网上很常见的代码,#是标签内置的一个方法,代表top的作用。所以用这种方法点击后网页后返回到页面的最顶端。

5.<a href="#" onclick="js_method();return false;"</a>

这种方法点击执行了js函数后return false,页面不发生跳转,执行后还是在页面的当前位置。

我看了下taobao的主页,他们采用的是第2种方法,而alibaba的主页是采用的第1种方法,和我们的区别是每个href里的javascript方法都用try、catch包围。

【相关推荐】

1. 免费html在线视频教程

2. html开发手册

3. php.cn原创html5视频教程

以上是分享关于a标签中添加点击事件的问题及解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn