我最终把一个大量的工作,这其中,链接比我想象的第一眼麻烦很多。我从来没有用它在相当这种方式之前: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的福是没有强大到足以弄清楚如何直接IT连锁到下一个元素的slide
属性(应该是一个函数,但它似乎没有工作),所以我结束了与你在chain()
调用中看到的匿名函数几乎一样好。闭环function(c1,c2)
有必要防止本地i
循环变量在调用链接匿名函数时超出范围。
它设置为当第一个元素的slide
功能被触发了连锁反应。如果您需要整个事情级联只要单击任何元素,你可能想设置每个元素的onClick
触发事件,第一个元素的slide()
,而不是自己。
无论如何,上面的代码是一个工作的例子。我希望结果是你正在寻找的。
它已经很长时间了b不幸的是,我不得不在(悲伤)之后不久将所有代码切换到jQuery。不过,我接受了这条建议,现在就在家里尝试了一下。完美的作品!非常感谢你!希望它能帮助所有的动作者! ;) – Frankie 2010-04-21 23:51:16