我正在尝试遍历无序列表,并遍历每个列表项(使用
var a = [];
$(".ticker-item").each(function(index) {
a[index] = $(this);
setTimeout(function() {
a[index].addClass('current').delay(500).queue(function(next) {
a[index].removeClass('current');
next();
});
}, index * 500);
});
我已经搜索了各种SO文章,并且我相信该函数将正确添加和删除类,但是当前似乎不使用li的吗?
这是HTML:
<div class="ticker">
<ul class="ticker-items">
<li class="ticker-item">
<a href="/categories/featured/summer-sale/1185">
<p><strong>Summer Sale</strong>? Now more things at <strong>50% off!</strong></p>
</a>
</li>
<li class="ticker-item">
<a href="/about">
<p>Things for kids you'll ? too. <strong>Our story</strong></p>
</a>
</li>
<li class="ticker-item">
<a href="/help/delivery-and-returns">
<p><strong>Free</strong> Delivery* & <strong>Free</strong> Returns ?</p>
</a>
</li>
</ul>
</div>
答案 0 :(得分:2)
您不会遍历类为ticker-item
的元素,而是会遍历像这样的元素:<ticker-item> ... </ticker-item>
要更改循环,您必须使用类选择器:
$(".ticker-item").each
答案 1 :(得分:0)
您没有按班级名称访问
将$(“ ticker-item”)。each更改为$(“。ticker-item”)。each(类选择器)
答案 2 :(得分:0)
removeClass
或jQuery#delay
根据定义正在使用队列。因此setTimeout(() => {
$('#noqueue')
.addClass('colored')
.delay(2000)
.removeClass('colored');
$('#queue')
.queue(function(next) {
$(this).addClass('colored');
next();
})
.delay(2000)
.queue(function() { $(this).removeClass('colored'); });
}, 1000);
对这些方法没有影响。
解决方案是将它们都执行到排队的回调中,以便将它们推入队列,如下所示:
div {
transition: color .5s;
}
.colored {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="noqueue">no queue</div>
<div id="queue">with queue</div>
setTimeout
下面我举了一个链接动画的例子。
请注意,我没有使用jQuery#delay
,但只使用了$('button').on('click', () => {
$('ul > li').each((i, li) => {
$(li)
.delay(500 * (i + 1))
.queue(next => {
$(li).addClass('colored');
next();
})
.delay(750)
.queue(() => ($(li).removeClass('colored'), $(li).dequeue()));
});
});
,因为我发现它更干净。
此外,如果您想在不刷新页面的情况下重新执行动画,请不要忘记让动画出队。
ul > li {
transition: color 1s;
}
.colored {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
<button>Color them!</button>
import datetime
now = datetime.datetime.today()
print(datetime.datetime(now.year, now.month + 1, 1) - datetime.timedelta(days = 1))