2017-04-07 130 views
4

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>

我已经使用收藏夹。我想在点击h3标记时显示灯箱。我有警惕a href(注释行)这工作正常。但没有工作的触发器。请参阅上面我的代码。并告诉我为什么trigger('click')不能在我的代码中工作。

谢谢

编辑 - 忘了收藏夹。简单的锚链接不工作。

回答

3

改变你的JavaScript代码如下:

$(function(){ 
     $('.parent-class h3').click(function(){ 
     $(this).siblings('p').find('a')[0].click(); 
     }); 
}); 
因为没有click事件绑定到元素

jQuery的触发器将无法正常工作,这是一个JavaScript点击功能,用鼠标模拟一个实际的点击!

+0

是的,这是完美的答案。谢谢 :) – Chinmay235

0

$(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; 
 
     }); 
 
    });
<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>

+0

您的代码工作绑定锚。但灯箱不工作。该图像链接直接在页面刷新中打开。 – Chinmay235

1

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

$(function(){ 
 
     $('.parent-class h3').click(function(){ 
 
     $(this).siblings('p').find('a').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>

0

为什么不触发的原因是因为你没有指定一个事件来锚定。尝试我附加的片段。在这种情况下,警报将显示,因为我有一个click事件

$(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') 
 
     }) 
 
    });
<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>