Почему функция следующего вида не работает в обработчике событий?
Есть функция с возвратом другой функции. Во внешней надо поставить переменную, которая инициализируется и приравняется к undefined только первым вызовом:
function f(elem) {
var name;
return function() {
...
name = elem;
}
}