Здесь дело не в структуре _$$.$ или $$, а в перекрытии областей видимости. Функция _$$.$ создает свойство $$ в элементе <div> с помощью:
obj.$$ = function() {
switch(arguments.length) {
case 0:
this.$$ = function () {
return _$$.$.apply(null,arguments);
}
break;
case 1:
obj.innerHTML=arguments[0];
break;
case 2:
obj.style[arguments[0]] = arguments[1];
break;
}
return obj;
}
Это свойство перекрывает глобальную переменную $$ внутри обработчика события.
Я не понимаю, зачем нужен вышенаписанный код. Если его убрать, то все будет работать.