2015-03-25 4 views
0

Je fais des onglets sur un site Web et j'installe jQuery pour exécuter la fonction quand un attribut est cliqué (ceci est seulement pour tester le sélecteur, tous les attributs ne seront pas utilisés dans le site web final). Aucun des attributs ne sera sélectionné après que je sois dans un certain div. Voici le code html:Pourquoi jQuery ne sélectionne pas tous les éléments d'attribut?

<div id="content" class="content"> 
    <div id="image" style="border:2px solid;float:left">...</div> 
    <div id="backgroundInfo" style="margin-left: 5px;float:left">...</div> 
    <br> 
    <div id="medBackground" style="margin-left: 5px">...</div> 
    <div id="tabs" class="tabs"> 
     <a> Clowns</a> 
     <ul class="tab-links"> 
       <li class="active"><a href="#tab1">03/05/2001</a></li> 
       <li><a href="#tab2">06/05/2007</a></li> 
     </ul> 
     <div class="tab-content">...</div> 
    </div> 
</div> 

La liste a été généré en utilisant une boucle while. Tous les attributs sont sélectionnés à l'exception de ceux de div (class = tabs). Voici le jQuery:

jQuery(document).ready(function() { 
    jQuery('a').on('click', function(e) { 
     var currentAttrValue = jQuery(this).attr('href'); 

     // Show/Hide Tabs 
     jQuery('.tabs ' + currentAttrValue).show().siblings().hide(); 

     // Change/remove current tab to active 
       jQuery(this).parent('li').addClass('active').siblings().removeClass('active'); 

     e.preventDefault(); 
    }); 
}); 

J'ai obtenu ce code de: http://inspirationalpixels.com/tutorials/creating-tabs-with-html-css-and-jquery#step-jquery Si quelqu'un pouvait me aider à comprendre ce qui va mal ce serait génial. Je l'ai eu pour travailler sous une forme simplifiée mais pas sur mon site principal.

+0

http://jsfiddle.net/arunpjohny/w788e8t4/ 1/- quel est le problème –

+0

http://jsfiddle.net/arunpjohny/w788e8t4/2/ –

+0

Que se passe-t-il sur votre site principal? Est-ce que ça ne fait rien du tout? Peut-être mieux si vous passez par le script avec firebug ou les outils de développement Chrome pour voir où le script s'arrête (si c'est le cas, sinon vous avez probablement un problème de sélection). –

Répondre

0

Je pense que vous avez utilisé la méthode .on() erroné pour une liste générée dynamiquement, essayer

jQuery(document).on('click', 'a', function(e){ 
    //your code 
}); 

Au lieu de

jQuery('a').on('click', function(e) { 
    //your code 
}); 
+0

J'ai essayé ceci et aucun des attributs n'a été sélectionné. –

+0

l'a édité, ceci devrait fonctionner maintenant – Jasper

+0

Oui cela a fonctionné! Merci beaucoup! Je pensais que cela avait à voir avec une liste générée dynamiquement. –