Jquery: triggers / distriggers Image Src se la class padre viene cliccata Nascondi / Mostra

Ho un programma che è configurato per hide / mostrare le righe della tabella quando si fa clic su un’icona +/-. La funzionalità sta funzionando, tuttavia, ho bisogno di capire un modo per ripristinare tutte le icone Nascondi / Mostra quando la categoria genitore viene distriggersta.

$(function(){ //src vars var hide_src = "http://www.synchronizeddesigns.com/filter_hide.gif", reveal_src = "http://www.synchronizeddesigns.com/filter_reveal.gif", s = ''; //hide all sublevel elements $(".subsub, .subsubsub").hide(); $("a").click(function(e){ e.preventDefault(); var tID = e.target.id, tClass = '.' + tID.replace('HS', ''); $(tClass).toggle(); if(!$(tClass).is(':visible')){ s = hide_src; //for each subcategory $(tClass).each(function(){ //get class names into classs array var classs = $(this).attr('class').split(' '), parentClass = ''; //search classs array for class that begins with 'cat' for (var j=0; j<classes.length; j++) { if (classes[j].match("cat")){ parentClass = classes[j]; } } //find subsubsub elements that have a class that begins with 'cat#sub' var subs = $('[class*=' + parentClass + 'sub]'); //if there are sub elements, hide them too if(subs){ subs.hide(); /***************************************************** NEED HELP HERE !!!!!!!!!! Need a way to reset all hide/show images icon when 'parentClass' hide/show is clicked to close. *****************************************************/ } }); } else { s = reveal_src; } //Change image src $("#" + tID).attr('src', s); }); }); 

Per replicare: apri tutti i genitori e sottotitoli, quindi chiudi uno dei genitori, quindi riapri il genitore. Noterai che l’icona +/- rimane nel suo stato precedente

collegamento jsFiddle

Puoi trovare i nodes img per le sottocategorie sotto quello corrente e poi cambiare il loro src attr.

Ho aggiornato il tuo jsfiddle: http://jsfiddle.net/nTyWv/12/

Il codice potrebbe essere qualcosa di simile:

  if(subs){ innerIcons = jQuery.find("a > img[id*="+tID+"sub]"); if (innerIcons) { $(innerIcons).attr('src', s); }; subs.hide(); }