2016-05-03 22 views
1

Nach einigen Beispielen, die ich gesehen habe, versuche ich zu klicken, um eine Div ID anzuzeigen/auszublenden. Der Inhalt ist ausgeblendet, aber wenn ich auf AFC Playoff Race klicke, passiert nichts . Irgendwelche Ideen, was ich falsch mache?Mit JavaScript und CSS nicht ein-/ausblenden

CSS-Stylesheet enthält:

.hidden { visibility: hidden; } 
.unhidden { visibility: visible; } 

hier das Javascript ist:

<script type="text/javascript"> 
    function unhide(divID) { 
    var item = document.getElementById(divID); 
    if (item) { 
     item.className=(item.className=='hidden')?'unhidden':'hidden'; 
    } 
    } 
</script> 

Hier ist der HTML-Code:

<div class="panel panel-afc nopad playoffs"> 
    <div class="panel-heading"> 
    <a href="javascript:unhide('afc-playoff-container');" rel="nofollow">AFC Playoffs</a> 
    </div> 
    <div class="panel-body"> 
    <div id="afc-playoff-container" class="hidden"> 
     <div id="afc playoff"> 
     <table class="data-table1" border="0" width="100%"></table> 
     </div> 
    </div> 
    </div> 
</div> 
+2

Ihre ' '. Ist das ein Tippfehler? –

+4

Haben Sie in Ihren CSS-Stylesheets "versteckte"/"unverdeckte" CSS-Klassen definiert? –

+0

das ist nicht CSS ist HTML ... –

Antwort

5

function unhide() { 
 
    var item = document.querySelector(this.dataset.target); 
 
    if (item) { 
 
    item.classList.toggle('hidden'); 
 
    } 
 
} 
 

 
window.onload = function() { 
 
    var toggleDivs = document.getElementsByClassName('toggleDiv'); 
 
    if (toggleDivs) { 
 
    for (var i = 0; i < toggleDivs.length; i++) { 
 
     toggleDivs[i].addEventListener('click', unhide); 
 
    } 
 
    } 
 
};
.hidden { 
 
    display: none; 
 
} 
 
#afc-playoff-container { 
 
    width: 120px; 
 
    height: 120px; 
 
    background: #DDDDDD; 
 
}
<div class="panel panel-afc nopad playoffs"> 
 
    <div class="panel-heading"> 
 
    <a href="javascript:;" class="toggleDiv" data-target='#afc-playoff-container' rel="nofollow">AFC Playoffs</a> 
 
    </div> 
 
    <div class="panel-body"> 
 
    <div id="afc-playoff-container" class="hidden"> 
 
     <div id="afc playoff"> 
 
     <table class="data-table1" border="0" width="100%"></table> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

Danke, aber immer noch keine Freude. Die Tabelle erfasst Daten von woanders. Deshalb habe ich es nicht mit Inhalt definiert. Wenn ich Ihren Code ausprobiere, bringt er mich zum Anfang der Seite, wird aber nicht angezeigt. Schau mal, auf der linken Seite siehst du AFC Playoffs. Das ist anklickbar. Aber es zeigt nicht den Inhalt, den Sie ähnlich sehen würden wie bei NFC Playoffs. Www.daddyleagues.com/madscrubs – jack213

+0

Wenn Sie eine Chance bekommen, können Sie meine Antwort sehen und die Seite auschecken? – jack213

+0

@ jack213. Ich habe meinen Code geändert, lass ihn bitte sehen. – DININDU

1

Es funktioniert, Sie haben gerade keine Anwendung Stile zu den Klassen und unhidden. Siehe this codepen für was ich meine.

Viel Glück!

+3

Fügen Sie Code-Beispiele direkt in Ihre Antworten ein, Links können verrotten und Benutzer sollten nicht auf eine externe Site gehen müssen, um sie zu sehen. –

Verwandte Themen