2009-10-24 5 views
0

ok donc en gros j'ai ceci:jquery sur la fonction clic

<div id="tabs"> 
<div id="unique_id" class="tab_link" onclick="changeTab(this);"> 
    <div id="tab_link_image" onclick="closeTab(this);"> 
    <image src="image.jpg" /> 
    </div> 
</div> 
</div> 

maintenant dans la fonction closeTab je l'ai enlever l'onglet de la page. Dans la fonction changeTab, je l'ai pour basculer une classe active ou non pour chaque classe tab_link en fonction de l'identifiant tab_links (l'identifiant est unique pour chacun). Dans la fonction closeTab à la fin, j'appelle la fonction changeTab pour activer le tout premier onglet. Lorsque vous cliquez sur un lien tab, tout fonctionne correctement. Cependant, lorsque vous cliquez sur l'onglet tab_link_image pour fermer l'onglet, il y a un problème. Il ferme bien l'onglet, appelle changeTab et définit l'onglet sur actif, mais il renvoie également la fonction changeTab à partir de l'événement onclick des onglets d'origine. Y a-t-il un moyen de ne pas déclencher quand on clique sur l'image tab_link_image? J'espère que cela a du sens.

Répondre

1

Jetez un oeil à bouillonnement d'événement, et l'événement approprié obligatoire, je pense que vous trouverez beaucoup de bonnes infos sur les jQuery docs

+0

merci pour cela, je vais l'utiliser. Mais cela n'a pas résolu mon problème. Je l'ai fixé en supprimant l'événement après que je supprimer l'élément – ngreenwood6

+1

Je suppose que votre cas si l'un de ces cas par l'attribution jquery et aussi l'ajout de marques comme « onclick » en même temps. Oui, vous devez supprimer le 'onclick' de votre code ou utiliser 'removeAttr ('onclick')' via JQuery. –

+0

o.k.w +1 Supprimer l'événement de onClick et mettre tout JavaScript dans un fichier séparé fera des merveilles en évitant les collisions bizarres et déroutantes. –

Questions connexes