Не внимательно прочитал, да назначение обработчиков здесь не причем.
Так как в IE6,7 нельзя добавить свой метод в прототип HTMLElement, то используют обёртки.
function F(node) {
this.node = node;
}
F.prototype = {
show: function() {
this.node.style.display = 'block';
},
hide: function() {
this.node.style.display = 'none';
}
};
Используют так:
var obj = new F(document.getElementById('…'));
obj.show();
obj.hide();
obj.node // – ссылка на узел
Чтобы не писать каждый раз new, можно добавить что-то вроде такого:
function $(arg) {
return new F(typeof arg == 'string' ? document.getElementById(arg) : arg);
}
Используем:
var obj = $('…');
obj.hide()
…