search

Home  >  Q&A  >  body text

javascript - DIV事件置为空

<p class="1"></p>
<p class="2"></p>
2覆盖在1的上面。但是现在需要点击2的时候任然触发点击1的事件。
(实际情况是。p1其实是一个比较复杂的dom结构。因为视觉需求现在需要在这个dom结构上蒙上一层图层(因为架构问题不考虑使用svg实现),这个图层仅仅作显示效果没有交互。但是如果蒙上这层图层会影响到下面dom的一些列交互,有没有办法,蒙在上面的这层p相当于交互来说是不存在的)

PHP中文网PHP中文网2836 days ago253

reply all(5)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 17:29:18

    css就可以做到,pointer-events:none;

    reply
    0
  • 黄舟

    黄舟2017-04-10 17:29:18

    你可以先给它们分别添加事件,然后在点击2的时候,主动触发1的事件,用jquery里的trigger就可以实现

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
    <body>
    <script src="https://code.jquery.com/jquery-2.1.4.js"></script>
    <p class="a">1</p>
    <p class="b">2</p>
    </body>
    </html>
    $(function(){
      $('.a').on('click',function(){
        alert(1);
      });
      $('.b').on('click',function(){
        
        alert(2);
        $('.a').trigger('click');
      });
    });

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 17:29:18

    点击p2触发p1?

    那你p2的触发事件倒是写出来啊,还有p1触发效果是什么样子的?

    讲的不清不楚,怎么帮你呢?

    reply
    0
  • PHPz

    PHPz2017-04-10 17:29:18

    意思是页面上的布局p2覆盖了p1所以点不到p1?然后要求点p2的时候还是可以出发p1的点击是吧?很简单啊,你在p2的click处理事件中取到p1然后trigger它的click事件就ok了啊

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 17:29:18

    <p onclick="fun()" class="1"></p>
    <p class="2"></p>
    
    $(".2").click(function(){
        fun();
    });

    reply
    0
  • Cancelreply