Я закончил тем, что много работал над этим, цепочка была намного сложнее, чем я думал на первый взгляд. Я никогда раньше не использовал его так: 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"/>
Calling get('slide')
возвращает объект Fx.Slide, который был установлен на каждом элементе, который вам затем может быть привязана к функции. Мой Mootools-fu не был достаточно сильным, чтобы понять, как связать его непосредственно с свойством slide
следующего элемента (который должен быть быть функцией, но он не работал), поэтому я закончил с анонимную функцию, которую вы видите внутри вызова chain()
, что почти так же хорошо. Закрытие цикла function(c1,c2)
было необходимо, чтобы локальная переменная цикла i
не выходила из области действия к моменту вызова вызываемой анонимной функции.
Он настроен как цепная реакция, когда срабатывает функция первого элемента slide
. Если вам понадобилось все, чтобы каскадировать всякий раз, когда нажимается элемент, вы, вероятно, захотите установить событие onClick
каждого элемента, чтобы запустить первого элемента, а не их собственный.
В любом случае, приведенный выше код является рабочим примером. Я надеюсь, что результаты - это то, что вы искали.
Его долгое время b ut, к сожалению, мне пришлось переключить весь код на jQuery очень скоро (грустно). Тем не менее я взял этот совет и просто попробовал его сейчас дома. Работает отлично! Большое спасибо! Надеюсь, он поможет всем без исключения! ;) – Frankie