Я использовал следующий код для циклического набора элементов.плагин не работает, как я ожидал
$(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>
Вы пробовали переходить через код с помощью средств разработки Firebug или Chrome? Вы сможете увидеть путь кода, который выполняется таким образом, и проверить переменные, чтобы увидеть, что такое «это» в любое время. – Spycho