Я закончил тем, что вложил в него много работы, цепочка оказалась намного сложнее, чем я думал на первый взгляд. Я никогда не использовал его таким образом: D
Вы можете определенно пройти через массив slideElements
. Привязка событий элемента друг к другу - сложная часть. Я закончил с функцией закрытия цикла, которая перебирает каждый slideElement
и связывает предыдущий элемент в списке с текущим элементом:
<!-- Working example of chained sliding divs -->
<div class="mySlideElements" style="background: red" id="slide1">Slide 1</div>
<div class="mySlideElements" style="background: yellow">Slide 2</div>
<div class="mySlideElements" style="background: green">Slide 3</div>
<div class="mySlideElements" style="background: purple">Slide 4</div>
<script type="text/javascript">
var slideElements = $$('.mySlideElements');
slideElements.set('slide');
for(var i = 1; i < slideElements.length; i++) (function(c1,c2){
c1.get('slide').chain(function(){c2.slide()});
})(slideElements[i-1],slideElements[i]);
</script>
<input type="button" onclick="$('slide1').slide()" value="slide"/>
Вызов get('slide')
возвращает объект Fx.Slide, который был установлен для каждого элемента, который затем можно связать с функцией. Мой Mootools-fu не был достаточно силен, чтобы понять, как связать его непосредственно со свойством slide
следующего элемента (которое должно быть функцией, но, похоже, не сработало), поэтому я получил анонимную функцию, которую вы видите внутри вызова chain()
, что почти так же хорошо. Закрытие цикла function(c1,c2)
было необходимо для того, чтобы локальная переменная цикла i
не выходила из области действия к моменту вызова связанной анонимной функции.
Он настроен как цепная реакция, когда срабатывает функция slide
первого элемента. Если вам нужно было все это каскадировать всякий раз, когда нажимается любой элемент , вы, вероятно, захотите установить событие onClick
каждого элемента для запуска slide()
первого элемента, а не их собственного.
В любом случае приведенный выше код является рабочим примером. Я надеюсь, что результаты - это то, что вы искали.