我只是看看堆栈上的很多答案,但似乎没有什么可以解决这个问题。
我尝试使用延迟按顺序将样式应用于列表li
的所有元素。该脚本仅显示列表的最后一项。问题是什么?在此先感谢您的帮助
$('ul li').each(function(i){
licont = this
setTimeout(function(){
$(licont).css('opacity','1')
},i * 10);
});

li{
opacity:0;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>ITEM 1</li>
<li>ITEM 2</li>
<li>ITEM 3</li>
<li>ITEM 4</li>
</ul>
&#13;
答案 0 :(得分:3)
当调用传递给setTimeout
的函数时,可以将当前元素作为jQuery对象作为参数传递给.each()
以引用setTimeout
中的当前jQuery对象
$('ul li').each(function(i) {
setTimeout(function(el) {
el.css('opacity', '1')
}, i * 1000, $(this));
});
&#13;
li {
opacity: 0;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>ITEM 1</li>
<li>ITEM 2</li>
<li>ITEM 3</li>
<li>ITEM 4</li>
</ul>
&#13;