资讯专栏INFORMATION COLUMN

父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存在影响

sixleaves / 1384人阅读

摘要:原文地址背景开发过程中遇到问题,简单写个运行环境为描述一下这个问题,当标签内部存在嵌套时,父元素标签的默认行为以及子元素绑定的事件的响应之间存在影响。

原文地址

背景

开发过程中遇到问题,简单写个demo 运行环境为Chrome 68

描述一下这个问题,当a标签内部存在嵌套时, 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存在影响。页面结构:





    
    
    
    a标签内部点击事件失效
    



    父标签
        
            子标签1
        
        
            
                子标签2
            
        
        
            
                子标签3
            
        
    
    



示例如下图(如果a标签嵌套,浏览器解析错误,所以用object标签包裹了一层)。

执行操作:

当点击父标签时,先弹出111,然后跳转父标签的href链接。
说明onclick执行先于href

当点击child-one时,执行元素绑定的click事件,会弹出alert,但是location仍然跳转到了father。
阻止冒泡后,执行结果仍然不符合预期。添加preventDefault之后,执行了子元素自己的跳转。

当点击child-two时,弹出响应信息,然后会跳转href的链接。

当点击child-three时,先弹出click child-three,然后是href child-three,说明click事件先于href执行。

上面4个操作除了2之外都很好理解,2中,为什么已经在阻止了事件冒泡之后,仍然执行了父元素中href的跳转。

思考:

首先可以肯定的是,事件冒泡确实被阻止了,因为父元素的onclick并没有执行。
所以猜测,标签的默认行为是无法通过取消冒泡来阻止的,就算事件没有冒泡到父元素,子元素在父元素标签内部,仍然会执行标签默认行为。

解决方法:

在子元素中添加e.preventDefault()阻止默认行为

父元素不使用标签,使用其他标签绑定click事件且子元素阻止冒泡

父元素不使用href属性,直接在标签上绑定click事件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52817.html

相关文章

  • 元素a标签href默认行为以及元素绑定click事件响应之间存在影响

    摘要:原文地址背景开发过程中遇到问题,简单写个运行环境为描述一下这个问题,当标签内部存在嵌套时,父元素标签的默认行为以及子元素绑定的事件的响应之间存在影响。 原文地址 背景 开发过程中遇到问题,简单写个demo 运行环境为Chrome 68 描述一下这个问题,当a标签内部存在嵌套时, 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存在影响。页面结构: ...

    wemall 评论0 收藏0
  • a标签嵌套href默认行为元素click事件存在影响

    摘要:开发过程中遇到问题,简单写个运行环境为描述一下这个问题,当标签内部存在嵌套时,父元素标签的默认行为以及子元素绑定的事件的响应之间存在影响。 2018-08-07 Question about work 开发过程中遇到问题,简单写个demo 运行环境为Chrome 68 描述一下这个问题,当标签内部存在嵌套时, 父元素标签的href默认行为以及子元素绑定的click事件的响应之间存在...

    DevTTL 评论0 收藏0
  • a标签嵌套href默认行为元素click事件存在影响

    摘要:开发过程中遇到问题,简单写个运行环境为描述一下这个问题,当标签内部存在嵌套时,父元素标签的默认行为以及子元素绑定的事件的响应之间存在影响。 2018-08-07 Question about work 开发过程中遇到问题,简单写个demo 运行环境为Chrome 68 描述一下这个问题,当标签内部存在嵌套时, 父元素标签的href默认行为以及子元素绑定的click事件的响应之间存在...

    Imfan 评论0 收藏0
  • 浅谈网页基本性能优化规则小结

    摘要:雪碧图内联图片将站内小图标合并成一张图,使用定位截取对应图标适当使用内联图片。浏览器缓存合理设置浏览器缓存是网页优化的重要手段之一。为什么要减少请求在性能优化中减少请求的措施占了很大部分,比如使用雪碧 这篇文章主要介绍了浅谈网页基本性能优化规则小结的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 针对浏览器网页的一些优化规则 页面优化 静态资源压缩...

    Aomine 评论0 收藏0
  • 浅谈网页基本性能优化规则小结

    摘要:雪碧图内联图片将站内小图标合并成一张图,使用定位截取对应图标适当使用内联图片。浏览器缓存合理设置浏览器缓存是网页优化的重要手段之一。为什么要减少请求在性能优化中减少请求的措施占了很大部分,比如使用雪碧 这篇文章主要介绍了浅谈网页基本性能优化规则小结的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 针对浏览器网页的一些优化规则 页面优化 静态资源压缩...

    luffyZh 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<