我正在使用以下代码循环一组元素。
$(this).next().show().animate({top: '25px'},250,function(){
$(this).addClass('active');
});
但这很有限,因为我需要到达元素列表的末尾,然后再次循环,所以我写了这个插件:
(function($){
$.fn.extend({
rotater: function(class_check){
return this.each(function(){
if($(this).next().hasClass(class_check)){
return $(this).next();
} else {
return $(this).parent().children().first();
}
});
}
});
})(jQuery);
为了检测我何时到达了我想要的集合的末尾(它们都共享一个公共类),如果是这样,请抓住第一个对象以再次开始整个循环。
我将调用代码更改为:
$(this).rotater('common_class').show().animate({top: '25px'},250,function(){
$(this).addClass('active');
});
但它已经完全停止工作了!!我很困惑,如果我的“返回开始”脚本失败了,我可以理解,但至少第一个周期的行为应该完全一样next()
,因为我实际上是在返回next()
.
我的 html 看起来像:
<div id="parent>
<div class="common_class"></div>
<div class="common_class"></div>
<div class="common_class"></div>
<div class="common_class"></div>
<div class="undesired_elemement"></div>
</div>