我有以下功能。总而言之,我有4个div,我想将init
类应用到。 init
类基本上显示了4个div。
它应该工作,但它同时显示所有4个div,这不是我想要的。我想显示1个div,然后是下一个,然后是下一个,等等。
我哪里错了?
$('.campaign-item').waypoint({
handler: function() {
var $this = $(this);
$this.each(function(i) {
setTimeout(function() {
$this.addClass('init');
}, i * 500 );
});
},
offset: '60%'
});
答案 0 :(得分:3)
您需要将类添加到每个元素,而不是所有元素。
var $this = $(this);
$this.each(function(i,v){
setTimeout(function(){
$(v).addClass('init');
}, i * 500 );
});
答案 1 :(得分:3)
$('.campaign-item').each(function (i) {
var $this = $(this);
$this.waypoint({
handler: function() {
setTimeout(function() {
$this.addClass('init');
}, i * 500 );
},
offset: '60%'
});
});
答案 2 :(得分:0)
我认为您的问题是jQuery对象包含与您的选择器匹配的对象的集合。 " $(本)"是那个集合。 "每个"函数使您可以使用返回的第二个参数("函数(索引,元素)")访问该集合中的各个元素。在您的代码中,您尝试添加" init"因为" $ this"是整个系列。您需要将类添加到每个函数的每次迭代中返回的第二个参数。