Это должно делать то, что вы хотите, если я правильно понимаю вопрос
var offset = 0;
$$('.tdresult').each(function(chooseClass) {
chooseClass.getElements('a').each(function(el){
el.set('rel',offset);
el.addEvent('mouseenter', function(uniqueid) {
return function() {
infoGet(1,uniqueid);
}
}(offset));
offset++
});
});
offset
увеличивается с циклом, но объявляется вне его. Каждый раз при запуске цикла будет увеличиваться та же самая переменная offset
. Цикл, который был там ранее, не был необходим.
Хотя один вопрос ... почему вы устанавливаете атрибут rel
в число? см. http://www.w3schools.com/TAGS/att_a_rel.asp для получения списка допустимых значений. Также обратите внимание, что ни один из основных браузеров не использует этот атрибут в любом случае. (Epic fail для поддержки стандартов для всех)
EDIT
Я заметил, что вы пытались сделать со слушателем событий. Я изменил код, чтобы сохранить текущее смещение в замыкании с помощью обработчика событий. Функция в обработчике событий немедленно запускается с текущим значением offset
. Внутри функции это называется uniqueid
. Затем функция возвращает функцию обработчика реального события, но поддерживает использование переменной uniqueid
(не смещение, а значение смещения во время вызова внешней функции).