JQuery trigger()不起作用

时间:2017-04-07 07:28:10

标签: javascript jquery



  $(function(){
      $('.parent-class h3').click(function(){
         $(this).siblings('p').find('a').trigger( "click" );
         //var h = $(this).siblings('p').find('a').attr( "href" );
         //alert(h);
      });
  });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<div class="parent-class">
    <p class="child-class">
        <a href="hello.jpg" data-rel="lightbox-1">Lightbox Image</a>
    </p>
    <h3>Title Here</h3>
</div>
&#13;
&#13;
&#13;

我在我的网站上使用过lightbox。我想在点击h3标签时显示灯箱。我有警告a href(注释行)这工作正常。但不是工作触发器。请参阅上面的代码。并告诉我为什么trigger('click')无法在我的代码中工作。

谢谢

编辑 - 忘记了灯箱。简单的锚链接不起作用。

4 个答案:

答案 0 :(得分:3)

将您的javascript代码更改为:

$(function(){
      $('.parent-class h3').click(function(){
         $(this).siblings('p').find('a')[0].click();
      });
});

jQuery触发器不起作用,因为没有点击事件绑定到元素,这是一个javascript点击功能,它模拟实际点击,就像用鼠标一样!

答案 1 :(得分:1)

您可以使用直接点击功能。

&#13;
&#13;
  $(function(){
      $('.parent-class h3').click(function(){
         $(this).siblings('p').find('a').click()
         //var h = $(this).siblings('p').find('a').attr( "href" );
         //alert(h);
      });
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<div class="parent-class">
    <p class="child-class">
        <a href="hello.jpg" data-rel="lightbox-1">Lightbox Image</a>
    </p>
    <h3>Title Here</h3>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

&#13;
&#13;
 $(function(){
      $('.parent-class h3').click(function(){
         //$(this).siblings('p').find('a').trigger( "click" );
         var h = $(this).siblings('p').find('a').attr( "href" );
         location.href = h;
      });
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="parent-class">
    <p class="child-class">
        <a href="hello.jpg" data-rel="lightbox-1">Lightbox Image</a>
    </p>
    <h3>Title Here</h3>
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

它没有触发的原因是你没有分配一个事件来锚定。试试我附上的片段。在这种情况下,警报将显示,因为我通过点击事件绑定了锚点

&#13;
&#13;
$(function(){
      $('.parent-class h3').click(function(){
         $(this).siblings('p').find('a').trigger( "click" );
         //var h = $(this).siblings('p').find('a').attr( "href" );
         //alert(h);
      });
      $("a").click(function(){
      alert('hi')
      })
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<div class="parent-class">
    <p class="child-class">
        <a href="hello.jpg" data-rel="lightbox-1">Lightbox Image</a>
    </p>
    <h3>Title Here</h3>
</div>
&#13;
&#13;
&#13;