2017-02-13 5 views
0

Ich habe dieses Menü in meiner Website
enter image description hereausblenden div mit mehreren Tasten

jetzt i, wenn Sie über uns oder Studenten oder Ereignisse klicken Sie gibt es neue Links erscheint (Kollaps), jetzt, was ich will ist, wenn über uns, erweitert Studenten oder Ereignisse die socials Medien-Symbole mit jQuery verschwinden i versteckte Klasse, um die Symbole hinzuzufügen versucht, es funktioniert, aber wenn Sie einen anderen Link erweitern es wieder

jQuery('#block-expandedmenu li:nth-child(2),#block-expandedmenu li:nth-child(5),#block-expandedmenu li:nth-child(14)').click(function(){ 
if ($social.css('display') == "block") 
{ 
    $social.hide(); 
} 
else 
{ 
    $social.show(); 
}}); 

bitte helfen Sie erscheinen, wenn Sie können! Dank

+1

Können Sie den Code schreiben Sie schon versucht? –

+0

Ich habe den Code hinzugefügt, den ich bereits ausprobiert habe –

Antwort

0

über den Workflow Denken Sie hier:

Sie auf einen Link klicken, soziale als block angezeigt wird, so dass er sich versteckt.

Sie klicken direkt auf einen anderen Link, soziale erfüllt nicht, dass if Bedingung mehr, da es nicht als Block angezeigt wird, so zeigt es.

Dies ist vollständig erwartet Verhalten.

Ich denke, Ihr 'Problem' liegt bei Ihrem if Zustand.

Meine vorgeschlagene Vorgehensweise wäre (auch zur Vereinfachung Ihrer Selektoren), eine Klasse zu den li s hinzuzufügen, die Sie Ihre sozialen Links beim Klicken verbergen möchten. Also, wenn Sie eine Klasse hide-social haben, können Sie Ihren Code Refactoring wie folgt:

jQuery('#block-expandedmenu li').click(function(){ // Trigger on all li elements 
    $social.toggle(!$(this).hasClass('social-hide')); // Toggle visibility based on class 
});