2012-03-29 5 views
0

Ich habe den dynamischen Code für zusammenklappbares Menü. Ich möchte das Bild ändern, wenn es um das Menü Dynamische Code für php Ausklappmenü kollabieren ist:Wie ändere ich das komprimierbare Menübild im dynamischen Code?

 if($levelAction=="Expand"){ 
echo '<li>'; 
    echo '<a href="#" class="swap-menu"><img id="coll" src="images/collapsed.gif" hspace = "2"/>'.$B->getAttribute('TITLE').'</a>'; 
    echo '<ul style="display:none;" class="sub-menu">'; 
$groupStarted =1; 
} 

und hier ist Javascript für Ausklappmenü:

$(function(){ 
    $('.swap-menu').bind('click',function(){   
     $('.sub-menu').find("+ ul").slideUp(1); 
     $(this).find("+ ul").slideToggle("fast"); 
    }); 

     $('.direct-link').bind('click',function(){   
     if(!$(this).parents('.sub-menu').length){ 
      $('.sub-menu').hide(); 
     }    
     var $current=$(this).parent(); 
     var id=parseInt($current.find('input:hidden[name=menu-id]').val()); 
     var slider=$current.find('input:hidden[name=slider]').val(); 
     var min=parseInt($current.find('input:hidden[name=min]').val()); 
     var max=parseInt($current.find('input:hidden[name=max]').val());    
     button_clk(id, slider, min, max); 
    }); 
}); 

Antwort

0

Verwendung addClass und removeClass CSS-Klasse zu wechseln und zuweisen unterschiedliches Bild zu den Klassen. überprüfen here mit Ihrem Code getan ..

$(function(){ 
    $('.swap-menu').bind('click',function(){   
     $('.sub-menu').find("+ ul").slideUp(1); 
     $(this).find("+ ul").slideToggle("fast"); 
     $('.swap-menu').toggleClass('current');// here you need to create one css class .current and put image you want to display or switch. Make sure you have alternate image for swap-menu which will switch with the current class 
    }); 

     $('.direct-link').bind('click',function(){   
     if(!$(this).parents('.sub-menu').length){ 
      $('.sub-menu').hide();    
     }    
     var $current=$(this).parent(); 
     var id=parseInt($current.find('input:hidden[name=menu-id]').val()); 
     var slider=$current.find('input:hidden[name=slider]').val(); 
     var min=parseInt($current.find('input:hidden[name=min]').val()); 
     var max=parseInt($current.find('input:hidden[name=max]').val());    
     button_clk(id, slider, min, max); 
    }); 
});​ 
+0

Wir haben nicht die CSS-Klasse für .swap-Menü haben, ist es nur für Klick-Funktion verwendet wird, wie kann ich es tun? – user1300103

+0

keine Sorge. Sie können die Klasse noch mit '.sap-menu erstellen [hier klicken] (http://jsfiddle.net/R2wwL/1/). Was Sie tun müssen, ist, welches Bild in der Klasse ".swap-menu" in den Status "close" gesetzt wird und in der Klasse ".current" das Statusbild geöffnet wird. Ich habe vorher schon benutzt> aber du kannst direkt .swap-menu anstelle von .swap-menu verwenden: vor –

+0

[Check this] (http://jsfiddle.net/R2wwL/3/) habe ich aber nochmal für dich aktualisiert es gibt keine Notwendigkeit zu verwenden, bevor Sie in der gleichen Klasse .swap-Menü und .current als Hintergrundbild direkt zuweisen können –

Verwandte Themen