2016-11-06 2 views
-2

So habe ich eine Navigationsleiste mit Links und Unterlinks. Ich habe derzeit meine Links und Unterlinks in der Struktur ul und li Elemente. Die Dropdown-Navigationsleiste wurde mit JavaScript erstellt, das wie vorgesehen funktioniert, abzüglich eines Problems. Ich brauche das Elternelement, um nicht zu verschwinden, wenn das Kinderelement gezeigt wird. Ich habe einen Screenshot zusammen mit dem HTML und JS eingefügt.Kinder übergeordnete Element in JS

Children elements covering parent element

Wenn jemand eine Antwort bereitstellt, können Sie auch erklären, warum die Eltern vertuscht wird? Ich habe versucht, dies auf dem Stapel zu finden und schaute auf das Internet und war nicht in der Lage, genau zu finden, nach was ich suchte.

Danke ein Haufen Jungs!

function main(){ 
 

 
    $('.sub-elements').hide(); 
 
    $('.main-elements').on('click',function(){ 
 
     $(this).children().slideToggle(300); 
 
    }); 
 
} 
 
$(document).ready(main);
<div class = "nav-bar"> 
 
      <ul class = "nav-drop"> 
 
       <li class = "main-elements"><a href = "#">Link 1</a> 
 
       <ul class = "sub-elements"> 
 
        <li><a href = "#">Sub Link 1</a></li> 
 
        <li><a href = "#">Sub Link 2</a></li> 
 
       </ul> 
 
       </li> 
 
       <li class = "main-elements"><a href = "#">Link 2</a> 
 
       <ul class = "sub-elements"> 
 
        <li><a href = "#">Sub Link 3</a></li> 
 
        <li><a href = "#">Sub Link 4</a></li> 
 
        <li><a href= "#">Sub Link 5</a></li> 
 
        <li><a href= "#">Sub Link 6</a></li> 
 
       </ul> 
 
       </li> 
 
       <li class = "main-elements"><a href='#'>Link 3</a> 
 
       <ul class = "sub-elements"> 
 
       <li><a href='#'>Sub Link 1</a></li> 
 
       <li><a href='#'>Sub Link 2</a></li> 
 
       <li><a href='#'>Sub Link 3</a></li> 
 
       <li><a href='#'>Sub Link 4</a></li> 
 
       </ul> 
 
      </li> 
 
      </ul> 
 
      </div>

sub-Links in der Struktur ul und li Elemente. Die Dropdown-Navigationsleiste wurde mit JavaScript erstellt, das wie vorgesehen funktioniert, abzüglich eines Problems. Ich brauche das Elternelement, um nicht zu verschwinden, wenn das Kinderelement gezeigt wird. Ich habe einen Screenshot zusammen mit dem HTML und JS eingefügt.

Children elements covering parent element

Wenn jemand eine Antwort bereitstellt, können Sie auch erklären, warum die Eltern vertuscht wird? Ich habe versucht, dies auf dem Stapel zu finden und schaute auf das Internet und war nicht in der Lage, genau zu finden, nach was ich suchte.

Danke ein Haufen Jungs!

Antwort

0

Es sollte funktionieren hinzuzufügen:

function main() { 
    $('.sub-elements').hide(); 

    $('.main-elements').on('click', function() { 
    $(this).find('.sub-elements').slideToggle(300); 
    }); 
} 

$(document).ready(main); 
+0

Was ist es "find" das macht die Eltern nicht ausgeblendet werden? –

+0

Ich gab das eine Chance und es hat funktioniert! Kannst du mir den Unterschied erklären, was zu finden ist und was Kinder getan haben? –

+0

Die Methode children() gibt alle untergeordneten Elemente des ausgewählten Elements zurück. (http://www.w3schools.com/jquery/traversing_children.asp) –

0

Vielleicht vergessen Sie die Kinder der Klasse in jQuery

function main(){ 
 

 
$('.sub-elements').hide(); 
 
$('.main-elements').on('click',function(){ 
 
    $(this).children('.sub-elements').slideToggle(300); 
 
}); 
 
    } 
 
    $(document).ready(main);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<div class = "nav-bar"> 
 
     <ul class = "nav-drop"> 
 
      <li class = "main-elements"><a href = "#">Link 1</a> 
 
      <ul class = "sub-elements"> 
 
       <li><a href = "#">Sub Link 1</a></li> 
 
       <li><a href = "#">Sub Link 2</a></li> 
 
      </ul> 
 
      </li> 
 
      <li class = "main-elements"><a href = "#">Link 2</a> 
 
      <ul class = "sub-elements"> 
 
       <li><a href = "#">Sub Link 3</a></li> 
 
       <li><a href = "#">Sub Link 4</a></li> 
 
       <li><a href= "#">Sub Link 5</a></li> 
 
       <li><a href= "#">Sub Link 6</a></li> 
 
      </ul> 
 
      </li> 
 
      <li class = "main-elements"><a href='#'>Link 3</a> 
 
      <ul class = "sub-elements"> 
 
      <li><a href='#'>Sub Link 1</a></li> 
 
      <li><a href='#'>Sub Link 2</a></li> 
 
      <li><a href='#'>Sub Link 3</a></li> 
 
      <li><a href='#'>Sub Link 4</a></li> 
 
      </ul> 
 
     </li> 
 
     </ul> 
 
     </div>

Verwandte Themen