2011-12-02 4 views
0

En cours d'exécution dans un problème étrange, ne peut pas tout à fait comprendre ce qui ne va pas. Aucune erreur n'apparaît sur ma console.jQuery include variable comme nom de classe

J'essaie de filtrer mon sélecteur avec une variable comme c'est la classe. Voir jsFiddle et ci-dessous

Merci!

http://jsfiddle.net/danielredwood/SUxQx/2/

JavaScript:

$('.titles li').click(function() { 
    $(this).addClass('selected').siblings().removeClass('selected'); 

    var selected = $(this).attr('class').replace(' selected', ''), 
      next = $('.lyrics article').hasClass(selected); 

    $('#w').html(selected); //for testing, shows what the value is 
    $('#x').html(next); //ditto 

    $('.shown').fadeOut(400, function() { 
     $(this).removeClass('shown'); 
     next.fadeIn(400).addClass('shown'); 
    }); 
}); 
+1

Peut-être que vous pouvez décrire ce que vous essayez d'accomplir. Je suis sûr qu'il y a une meilleure façon que ce que vous faites maintenant. – jfriend00

Répondre

0

assez sûr ceci:

next = $('.lyrics article').hasClass(selected); 

... devrait être ceci:

next = $('.lyrics article.' + selected); 

... depuis .hasClass() retourne un booléen.


Ou vous pouvez le faire à la place (donne le même résultat):

next = $('.lyrics article').filter('.' + selected); 

JSFIDDLE DEMO

+1

Dieu merci. Je devenais fou. Acceptera dès que possible – technopeasant

Questions connexes