2010-08-25 249 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);} 
}