2017-04-07 78 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>