2016-08-05 8 views
0

Also ich habe dieses Ding, wo ich ein div zu einer bestimmten Zeit je nach der Schaltfläche geklickt benötigt. Ich fand this große Geige, die fast perfekt ist außer für die Tatsache, dass es nicht zeigt, wenn eine Verbindung ausgewählt ist. Ich möchte es so haben, dass der ausgewählte Link eine Art aktive Klasse haben oder anders aussehen kann als die anderen Links. Ist das möglich? Ich habe mir Fragen angesehen und kann dafür keine Antwort finden.Auswahl/aktive Klasse zum Anzeigen/Verbergen divs

Wenn jemand interessiert ist, verwende ich es for this (aber der Code ist wirklich vermasselt, sorry). (Ich möchte auch die Filtertasten auf der obersten Zeile ändern Sie alle Bilder zurücksetzen und filtern, aber bin mir bewusst, das ist eine andere Frage. Noch jede Hilfe würde geschätzt!)

html

<div id="linkwrapper"> 
    <a id="link1" href="#">link1</a><br/> 
    <a id="link2" href="#">link2</a><br/> 
    <a id="link3" href="#">link3</a> 
</div> 

<div id="infocontent"> 
    <div id="link1content">Information about 1.</div> 
    <div id="link2content">Information about 2.</div> 
    <div id="link3content">Information about 3.</div> 
</div> 

jquery

$(document).ready(function(){ 

    $("#infocontent").hide(); 
    $("#infocontent div").hide(); 


    $('#linkwrapper a[id]').click(function(){ 

     var vsubmen = this.id +"content"; 

     if($("#infocontent").is(":visible") == false) { 
      $("#" + vsubmen).show('fast',function() { 
       $("#infocontent").slideDown(); 
      }); 
     } else if ($("#" + vsubmen).is(":visible") == false) { 
      $("#infocontent").slideUp('slow',function(){ 
       $("#infocontent div").hide(); 
       $("#" + vsubmen).show(); 
       $("#infocontent").slideDown('slow');  
      }); 
     } else { 
      $("#infocontent").slideUp('slow',function(){ 
       $("#infocontent div").hide(); 
      }); 
     } 
     return false; 
    }); 

}); 

Antwort

1

Sie, dass die Geige wie folgt vereinfachen:

$('a[id^=link]').click(function(){ 
    $('a[id^=link]').removeClass('meactive'); 
    $(this).addClass('meactive'); 

    $('#infocontent>div').slideUp(); 

    var tmp = this.id; 
    $('#'+tmp+'content').slideDown(); 
}); //end a.click 

jsFiddle Demo


Anmerkungen:

(1) $('a[id^=link]') - packt alle a Elemente mit einer ID, die beginnt mitlink

(2) $('#' +tmp+ 'content') - baut Selektoren wie: $('#link3content) `

+0

Das war genau das, was ich brauchte, vielen Dank! – grizzly

+0

Wenn diese Antwort Ihre Frage löst, schließen Sie bitte die Frage, indem Sie sie als richtige Antwort markieren (indem Sie auf das Häkchen neben der Antwort klicken). * Beste Wünsche für Ihr Projekt. * – gibberish

Verwandte Themen