微信端开发 如何阻止父区域链接的执行

来源:互联网 发布:惊惶庞麦郎 知乎 编辑:程序博客网 时间:2024/06/06 05:44

  问题重现

   1 描述:在div上加上链接,其内部也加了一个a链接(但是由于ajax加载页面,所以把绑定事件全部绑上外层一个大span域中),当点击a的时候不应该进入div的链接地址,a点击事件在普通函数func1中,div事件func2在$(function(){}),所以在方法执行数组中就是[func1,func2]

   2 解决:当点击a的时候阻止div的函数执行e.stopPropagation();

             3     问题:当点击a的事件中加入e.stopPropagation停止冒泡时依旧继续进入div链接

               原因是:

$(function(){})在普通函数执行之后,因为得等页面元素加载完,而项目中用的ajax加载,存在异步,所以普通函数执行之前,而e.stopPropagation停止冒泡 也就是不再向上找符合条件的a元素,方法还是继续执行的,当进入div执行方法中的时候继续链接div地址.            最终解决:定义变量flag。。   在a事件中加入$(this).attr("flag",1)       在div事件中加入
if($(this).attr("flag")){   $(this).removeAttr("flag");   return;}结束~~~~~~----------------------------------------------------------------------分隔线-----------------------------------------------------------------


0 0
原创粉丝点击