Внимание: этот первый пример не будет работать! Продолжайте читать для объяснения.
Вы путаете onclick
синтаксис HTML с MooTools addEvent
. Попробуйте
for (var x=0;x<num;x++){
$('pageNum'+x).addEvent('click', 'addPageMoveEvent('+x+');');
}
Это проще и чище, но, возможно, все еще не делает то, что вы хотите. Этот код будет вызывать функцию addPageMoveEvent
каждый раз, когда нажимается ссылка ... это то, что вы хотите?
Поскольку MooTools не разрешает вышеуказанный метод, вы должны использовать следующее:
Программно более интересным и менее опасным способом сделать то же самое будет:
factory = function (x) { return function() { addPageMoveEvent(x); }; };
for (var x=0;x<num;x++){
$('pageNum'+x).addEvent('click', factory(x));
}
Это использует фабрику для создания замыканий, которые содержат ваши значения x
... довольно сложный код, но это пуристический способ. Он также избегает использования страшных eval
, возникающих из-за того, что вы вводите addEvent
строку. (Похоже, что MooTools все равно не нравится другой вариант.)