2010-12-11 47 views
0

J'ai un div qui active la visibilité de la liste en dessous. Dans ce div principal, j'ai un lien qui ouvre une boîte de couleur (jquery "lightbox" plugin) pour ajouter un nouvel élément à la liste.jQuery toggle div avec lien vers colorbox (lightbox)

Bien sûr, lorsque je clique sur le lien, il ne fait rien d'autre que basculer la liste (comme son parent). J'ai donc ajouté stopPropagation() au lien. Il suit le lien maintenant, mais il s'ouvre dans la fenêtre parente plutôt que dans la palette de couleurs.

Comment résoudre ce problème? Merci :)

<div class="list"> 
<div class="listname"> 
My List Name 
<a href="my_link.html" class="colorbox">Add Item</a> 
</div> 
<div class="items"> 
My Items 
</div> 
</div> 

$(".listname").toggle(
function(){ 
    $(this).siblings(".items").slideDown(100); 
    return false; 
}, 
function(){ 
    $(this).siblings(".items").slideUp(100); 
    return false; 
} 
); 

$(".listname a").click(function(e){ e.stopPropagation(); }); 

Répondre

0

Je ne sais pas exactement, sans savoir exactement ce que le déclencheur est lightbox mais avez-vous essayé d'ajouter

event.preventDefault();

pour empêcher la suite du lien?

$(".listname a").click(function(e){ 
    e.stopPropagation(); 
e.preventDefault(); 
}); 
+0

qui rend le travail rien ... tue le lien. – Dianna

+0

Je ne pensais pas que le code de colorbox était pertinent, mais c'est: $ ('a.colorbox'). Colorbox ({opacité: 0.7, iframe: vrai, innerWidth: 550, innerHeight: 250, défilement: false}); – Dianna

+0

Si la palette de couleurs ouvre une fenêtre dans la même page, vous devez "supprimer le lien". Où appelez-vous la méthode colorbox? soit .colorbox(); – Timbadu

0

Vérifiez que vous avez besoin Jquery bibliothèque avant le script Colorbox

<script src="/js/jquery.js" type="text/javascript"> 
<script> 
jQuery('a.colorbox').colorbox(); 
</script>