Давайте рассмотрим несколько практических способов работы с обработчиками событий в браузерах. Например, можно назначить обработчик напрямую:
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);