2010-08-25 218 views
1

我試圖讓一個jQuery的燈箱加載時,頁面加載。我到了那裏的一半。當頁面加載後,Lightbox將打開,但隨後繼續在整個頁面的同一窗口中打開鏈接。在將鏈接加載到單獨的窗口之前,我該如何在此時停止。jQuery觸發器事件觸發多次

的jQuery:

$(document).ready(function(){ 
    $("a.greybox").bind("click", openbox); 
    $("a.greybox").trigger('click', openbox); 

    function openbox(){ 
    var t = this.title || $(this).text() || this.href; 
    GB_show(t,this.href,340,220); 
    } 
}) 

HTML:

<a href="http://google.com/" title="Google" class="greybox">Launch Google</a> 
+0

jQuery的'trigger()'方法的第二個參數是爲了向事件傳遞額外的參數。我不知道爲什麼要將'openbox'函數傳遞給'trigger()'方法。 – jason 2010-08-25 01:32:48

+0

你的權利,不需要。但我仍然找不到可行的解決方案。 – Chamilyan 2010-08-25 02:02:25

+0

你確定在HTML上沒有其他'a.greybox'元素嗎? – fiatjaf 2012-12-19 20:03:12

回答

1

如果包括行:

return false; 

在你的函數。這將阻止鏈接原始行爲發射。

+0

我確定這會工作,即時通訊模擬器找到它的錯誤。 – Chamilyan 2010-08-25 02:29:05

1
function openbox(evt){ 
    evt.preventDefault(); // <<-- Add this 
    var t = this.title || $(this).text() || this.href; 
    GB_show(t,this.href,340,220);} 
}