2010-08-25 19 views
1

J'essaie de charger une lightbox jQuery lors du chargement d'une page. Je suis à mi-chemin. La lightbox s'ouvre lorsque la page se charge mais continue à ouvrir le lien dans la même fenêtre en tant que page entière. Comment puis-je l'arrêter à ce stade avant de charger le lien dans une fenêtre séparée.L'événement jQuery Trigger se déclenche plusieurs fois

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

Le deuxième paramètre de la méthode 'trigger()' de jQuery est destiné à transmettre des paramètres supplémentaires à l'événement. Je ne sais pas pourquoi vous passez votre fonction 'openbox' à la méthode' trigger() '. – jason

+0

votre droit, pas nécessaire. Mais je ne peux toujours pas trouver une solution qui fonctionne. – Chamilyan

+0

Êtes-vous sûr de n'avoir aucun autre élément 'a.greybox' sur le HTML? – fiatjaf

Répondre

1

Si vous incluez la ligne:

return false; 

dans votre fonction. Cela va arrêter le comportement original des liens de tir.

+0

Je suis sûr que cela fonctionnerait, je trouve que c'est un bug avec l'émulateur. – Chamilyan

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