Classe de basculement jQuery

Je ne parviens pas à append la fonction toggleClass de jQuery au rest de mon code. La page contient plusieurs balises audio HTML5 contrôlées via jQuery. J’ai essayé d’append la fonction de basculement à ma fonction de contrôle audio jQuery, mais cela n’ajoute pas la classe et, par la suite, le contrôle audio ne fonctionne pas. Je suppose donc que c’est une erreur de syntaxe étrange.

Que recommandez-vous les gars? Ci-dessous, un jsFiddle et une tentative (malheureusement) faible 🙂

http://jsfiddle.net/danielredwood/FTfSq/10/

HTML:

JavaScript:

 var curPlaying; $(function() { $(".playback").click(function(e){ e.preventDefault(); var song = $(this).next('audio')[0]; song.toggleClass("playing"); if(song.paused){ song.play(); if(curPlaying) $("audio", "#"+curPlaying)[0].pause(); } else { song.pause(); } curPlaying = $(this).parent()[0].id; }); }); //the function below works, but doesn't have the add/remove class functions var curPlaying; $(function() { $(".playback").click(function(e) { e.preventDefault(); var song = $(this).next('audio')[0]; if (song.paused) { song.play(); if (curPlaying) $("audio", "#" + curPlaying)[0].pause(); } else { song.pause(); } curPlaying = $(this).parent()[0].id; }); }); 

    Je voudrais utiliser .addClass() et .removeClass() , car cela va nettoyer votre code un peu et vous permettre d’utiliser CSS pour effectuer tout ce travail de mise en page:

     $('thumbnail').toggle(function(){ $('.play', this).removeClass('pausing'); $('.play', this).addClass('playing'); }, function(){ $('.play', this).addClass('pausing'); $('.play', this).removeClass('playing'); }); 
     $('thumbnail').toggleClass('pausing playing'); 

    ToggleClass : ajoute ou supprime une ou plusieurs classes de chaque élément de l’ensemble des éléments correspondants, en fonction de la présence de la classe ou de la valeur de l’argument switch.