Давайте рассмотрим несколько практических способов работы с обработчиками событий в браузерах. Например, можно назначить обработчик напрямую:
node.onclick = function(){
} Если нужно несколько событий или просто «осторожничаем», то можно воспользоваться следующей распространенной записью:
if (node.addEventListener)
node.addEventListener('click', function(e){}, false);
else
node.attachEvent('onclick', function(){}); Или таким модицифицированным вариантом (меньше символов):
if (node.attachEvent)
node.attachEvent('onclick', function(){});
else
node.addEventListener('click', function(e){}, false); Можно также использовать отдельную переменную для обработчика события:
var addEvent = node.attachEvent || node.addEventListener;
addEvent(/*@cc_on 'on'+@*/'click', function(){}, false); Или записать в одну строку с использованием условной компиляции:
node[/*@cc_on !@*/0 ? 'attachEvent' : 'addEventListener']
(/*@cc_on 'on'+@*/'click', function(){}, false);