2009-12-30 3 views
0

J'ai le code suivant où commentTable est la classe. Cela fonctionne bien pour les commentaires actuels affichés sur la page.Wordpress aime afficher les commentaires pairs/impairs w/classe différente - jQuery?

$ (". CommentTable: impair"). AddClass ("commentTableClass1"); $ (". CommentTable: pair"). AddClass ("commentTableClass2");

mais ce que je veux vraiment c'est que cette addition de classe soit 'live' même quand de nouveaux commentaires sont ajoutés. Je ne veux pas supprimer la classe et les rajouter pour obtenir l'effet. Je veux juste appliquer à la nouvelle classe innerHTML la classe "correcte".

Je pourrais tenir compte du nombre de commentaires et appliquer des classes différentes mais je voulais quelque chose d'élégant.

Répondre

1

Vous pouvez les mettre en fonction et appeler la fonction à chaque fois ...

function oddEven(){ 
    $('.commentTable').removeClass('commentTableClass1').removeClass('commentTableClass2'); 
    $(".commentTable:odd").addClass("commentTableClass1"); 
    $(".commentTable:even").addClass("commentTableClass2"); 
} 

alors vous pouvez simplement appeler oddEven(); plutôt que removeClass et addClass. C'est plus propre. Je ne dirais pas exactement que c'est élégant.

OU

ce serait probablement plus rapide et plus ce que vous cherchez:

function getCommentClass(){ 
    var newClass; 
    if($('.comment').length % 2 == 0){ 
     //there's an even number already, the new one will be odd 
     newClass = 'commentTableClass2'; 
    }else{ 
    //new one will be even 
     newClass = 'commentTableClass1'; 
    } 

    return newClass; 
} 

var commentClass = getCommentClass(); 
$('#newElement').addClass(commentClass); 

De toute façon, cependant, vous auriez besoin d'appeler une fonction à chaque fois que vous chargez un nouveau commentaire .

+0

Très bien. J'aime la deuxième solution! – Shailesh

Questions connexes