jQuery触发<a>标签的点击事件无效

1     <a id="workFrame" href="pages/work.html" target="FrameBox">首页</a>  
2       
3 $("#workFrame").tigger("click");

上述的代码,其实挺正常的,但是怎么也触发不了a标签的click事件。百度一下,解决方案如下

1     <a id="workFrame" href="pages/work.html" target="FrameBox"><span id="aSpan">首页</span></a>  
2 
3      $("#aSpan").tigger("click");  

当然这里有一个问题,就是为啥触发span的click事件,就会触发a标签的click事件呢,就是一个事件冒泡的过程

 1,事件源触发onclick事件,之后它的父元素也会触发click事件,之后它的祖父元素再触发click事件,直到html元素 (W3C标准 及支持事件冒泡,也支持事件捕获,事件捕获就是和事件冒泡相反,从html到事件源,当然我们伟大的IE在原则上还是不能与之为伍,有自己的风格,只支持事件冒泡)

 2,当然也可以阻止事件传播

  • 在W3c中,使用stopPropagation()方法 ,

  • 在IE下设置cancelBubble = true;
3,也可以阻止默认行为,例如click <a>后的跳转~
  •  在W3c中,使用preventDefault()方法;
  •   在IE下设置window.event.returnValue = false;

关于事件传播的具体内容:前关注 http://www.jb51.net/article/42492.htm

原文地址:https://www.cnblogs.com/qiao-xi/p/4580030.html