zoukankan      html  css  js  c++  java
  • js 绑定事件没有触发的离奇事件

    本以为页面中的元素只要没有添加点击事件,就会直接穿透... 

    然而并不是这样

    事件会穿透子元素向上冒泡,但是层级更高的元素会“拦截”事件

    <script>
        $('.up').click(function(){
            alert('Oooooooh!------U');
        })
        $('.down').on('click', function(){
            alert('Oooooooh!------D');
        })</script>

    <div class="down">D</div>
    <div class="up">U</div>
    <div class="down">D
        <div class="up">U</div>
    </div>

    只说区别, 点击深红色部分

    第一种情况,1个输出。触发自己的事件,同时会“拦截”粉色身上的绑定事件

    第二种情况,2个输出。会逐级向上冒泡触发父级身上的绑定事件

    • 上层元素(写在后面的.. z-index大的)确实会阻挡下层元素的事件.. 
    • 事件冒泡是相对于 嵌套的父子关系而言的 
    • jQuery 中 on 事件绑定 会冒泡。原生 js 也冒泡。冒泡利大于弊
    • jQuery 阻止冒泡 event.stopPropagation()  |  return false
    • opacity 为 0 的元素也会 触发 和 阻挡 事件 

    如果事件离奇地拒绝被触发,可以排查看看是不是被透明元素遮盖了.. 

  • 相关阅读:
    HTTP协议详情
    HTTP入门
    DNS vs CDN
    TCP/IP协议和互联网协议群
    常用docker镜像
    linq to sql 把数据库连接字段写入配置文件
    微信开发--one.微信平台验证
    项目--ajax上传文件(本次是图片)(.net)
    项目--Repeater嵌套横向显示
    项目--物流查询实现
  • 原文地址:https://www.cnblogs.com/yier0705/p/7942627.html
Copyright © 2011-2022 走看看