Динамические функции/методы

Кто-нибудь знает, почему "onmouseover" устанавливается только на последнем проходе этого цикла?

например, если я захожу в цикл "for (payment_id....." 3
раза - получаю 3 HtmlDom объекта типа "Link", каждый с прицепленным
к нему методом "onmouseover", так? Нет! :-) Только последняя (третья) ссылка
будет иметь работающий обработчик "onmouseover".

Такое впечатление что я создаю одну функцию вместо трёх. К сожалению, на этом
умные мысли заканчиваются :-). Что я уже только не пробовал! Уже 2 месяца с этим вожусь
без результата.
Например, пробовал не создавать 3 раза переменную типа Link с одним и тем же названием,
а делать массив Link'ов - результат от этого не меняется. В maillist писал 2 раза разными словами,
ответа не было вобще - то ли никто его не знает, то ли я так объяснил что меня никто не понял.

 for (payment_id in Reflect.fields(response.payments))
      {
        var shop_payments_area =
          js.Lib.document.getElementById("shop_"+shop_id+"_payments");
        shop_payments_area.innerHTML += '
          <tr>
            <td><a href="#open-an-account" class="link" id =
              "payment_'
+payment_id+'_data">просмотр</a></td>  
          </tr>
        '
;
        var payment_tech_data_link : js.Link =
          cast js.Lib.document.getElementById("payment_"+
            payment_id+"_data");
        payment_tech_data_link.onmouseover = function(e)
        {
          trace("asdf");
        }
      }