简体   繁体   English

单击时遍历无序列表javascript

[英]on click iterate through unordered list javascript

I am trying to make a navigation. 我正在尝试进行导航。 On click it should show one by one li in unordered list, and it works but when I close navigation and than click again it just shows unordered list without delay animation. 在单击时,它应该在无序列表中一一显示,并且它可以工作,但是当我关闭导航并再次单击时,它只是显示无序列表而没有延迟动画。 Here is the code: 这是代码:

 document.querySelector("#nav-toggle") .addEventListener("click", function() { this.classList.toggle("active"); $('ul > li').each(function(i, elem) { setTimeout(function() { $(elem).fadeIn(); }, i * 500); }); }); 
 <nav> <a id="nav-toggle" href="#"><span></span></a> </nav> <div class="slide"> <div class="slidemeni"> <ul id="foo"> <li class="menili nonenav"><a href="#" class="current">Početna</a></li> <li class="menili nonenav"><a href="#">O nama</a></li> <li class="menili nonenav"><a href="#">Usluge</a></li> <li class="menili nonenav"><a href="#">Analitika</a></li> <li class="menili nonenav"><a href="#">Kontakt</a></li> <li class="menili nonenav"><a href="#">Blog</a></li> </ul> </div> </div> 

How do you close the navigation? 您如何关闭导航? Try to use .hide() on all li in the closing process. 在关闭过程中,尝试对所有li使用.hide()。 When you use fadeIn from jquery, the element that is fading must be hidden. 当您从jquery使用fadeIn时,必须隐藏正在褪色的元素。 If you just hide the ul, when you will show it again, li will not be hidden so they will not fade in the way you want. 如果仅隐藏ul,则当您再次显示它时,li将不会被隐藏,因此它们不会以您想要的方式褪色。 If you do not want to change your closing process, you could also add a loop (or .each) at the begginning of your function to iterate hover each li and close them with .hide(). 如果您不想更改关闭过程,则还可以在函数的开头添加一个循环(或.each)来迭代悬停每个li并使用.hide()关闭它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM