я знаю, что вы приняли другой ответ, но mootools 1.3 теперь предоставляет отличную новую функцию, Element Pseudos, которая, я думаю, будет хорошим решением здесь.для начала, код ниже
http://www.jsfiddle.net/dimitar/VR9k8/4/
(function() {
var toggled = 0;
Event.definePseudo('toggle', function(split, funcsArray, args){
if (funcsArray.length && funcsArray[toggled])
funcsArray[toggled].apply(this, args); // args[0] is the Event instance
toggled++;
if (toggled >= funcsArray.length)
toggled = 0;
});
})();
document.id("foo").addEvent("click:toggle", [function(e) {
e.stop();
alert("function 1");
}, function(e) {
e.stop();
alert("function 2");
}, function(e) {
e.stop();
// event object (args[0])
console.dir(e);
alert("function 3");
}]);
... позволит вам последовательно соединять число функций для последовательного выполнения цикла, а также передавать аргументы или хотя быисходное событие.
документы: http://mootools.net/docs/more/Element/Element.Event.Pseudos
эквивалентная или улучшенная версия решения-прототипа элемента здесь