2014-05-15 41 views
1

我有一个程序被配置为当单击+/-图标时隐藏/显示表格行。该功能正在工作,但是,当父类别切换关闭时,我需要找出重置所有隐藏/显示图标的方法。Jquery - 如果父类被点击切换图像Src隐藏/显示

$(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 classes array 
      var classes = $(this).attr('class').split(' '), 
       parentClass = ''; 

      //search classes 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); 
}); 
}); 

要复制:切换打开的所有家长和潜艇,然后关闭父母中的一方,然后重新打开父。你会发现,在+/-图标保持之前的状态

jsFiddle link

回答

0

您可以找到当前下的子类别的img节点,然后改变自己的src ATTR。

我已经更新您的jsfiddle:http://jsfiddle.net/nTyWv/12/

的代码可能是这样的:

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

正是我需要的!谢谢@Roberto – patlxix9