您当前的位置:首页 > 分类 > 技术资讯 > Web > 正文

标签与onclick()那些事儿

发布时间:2016-11-15 15:59:26      来源:51推一把
【摘要】对于链接 A 标签而言,当用户鼠标单击的时候,A对象被触发时会首先去执行onclick部分,然后是href,如果是ie6的话,执行onclick,发出http请求。瞬时又执行href,这时ie6就会abort前一个请求
1.A上同时写了href和onclick事件

对于链接 A 标签而言,当用户鼠标单击的时候,A对象被触发时会首先去执行onclick部分,然后是href,如果是ie6的话,执行onclick,发出http请求。瞬时又执行href,这时ie6就会abort前一个请求。
在IE6 下,HTML的链接a标签的onclick事件会不起作用,这是因为IE6内核解释a标签的方式认为href的优先级要高于onclick ,这会造成onclick方法不起作用。

解决方法就是:

a.直接把onclick事件写在href中:<a href="javascript:test()" >test</a>
b.还有一种解决方案:<a href="javascript:void(0)" onclick="do();return false;">test</a>
这样是忽略了href部分,这对于通过onclick传递this,或者无法避开a对象时都有用。

2.img标签与onclick事件
近期做项目,在调试js交互事件时,遇到IE6点击没有任何反应。最终发现是onclick事件写在img标签中导致。
但是单独测试<img src="" onclick="test()" />事件时正常。

所以遇到IE6 img onclick事件不兼容时,可以在外层加个DIV标签,将事件写在DIV标签里以解决。
<div onclick="test()"><img src=""  /></div>