2010-04-19 6 views
0

J'utilise le widget onglets jQuery-ui comme navigation. Le contenu de tous les onglets est chargé via ajax. Il semble qu'il y ait une interférence entre les onglets. Je veux dire, par exemple, si dans page1 dans la tab1, il y a un élément dont l'identifiant est foo, et dans page2 dans tab2, il y a un élément avec le même identifiant. Et dans les deux pages, il y a du code javascript pour manipuler l'élément avec ID foo, alors des choses bizarres vont arriver.Onglets jQuery-ui: interférence entre les onglets

Comment faire face à cette situation?

Répondre

1

Vous traitez en ayant un ID unique - qui est, après tout le point d'identité. :) En ce qui concerne les sélecteurs jQuery, oui, vous pouvez clarifier quels éléments vous voulez dire Bayard Randel explique, mais c'est une pratique dangereuse en général. D'après mon expérience personnelle, j'ai découvert que cela revient à vous mordre à la fin - quelque part, d'une façon ou d'une autre, vous oubliez que vous avez des ID en double. Evite juste les.

+0

D'accord, l'élément Ids devrait être unique. –

+0

Cela signifie que je dois modifier le code de toutes les pages ... Quoi qu'il en soit, semble qu'il n'y a pas de meilleure solution. – powerboy

1

Étant donné que vous utilisez jquery, vous pouvez cibler l'élément correct en utilisant des sélecteurs basés sur le nom de votre onglet.

par exemple. si vous Markup ressemble à ceci:

<div id="tabs"> 
    <div id="tabs-1"> 
    <a href="#" id="linkId">blah</a> 
    </div> 
    <div id="tabs-2"> 
    <a href="#" id="linkId">blah</a> 
    </div> 
</div> 

vous pouvez spécifiquement sélectionner le deuxième lien avec ce sélecteur, malgré la duplication id:

$("#tabs-2 #linkId").whatever(); 
Questions connexes