Давайте рассмотрим, что мы можем извлечь из события после перехвата его с помощью соответствующего обработчика:
node[/*@cc_on !@*/0 ? 'attachEvent' : 'addEventListener']
(/*@cc_on 'on'+@*/'click', function(e){
var target = e.target || e.srcElement
// или
if (!e.target) {
e.target = e.srcElement
}
// или, если нам надо всего один раз
(e.target || e.srcElement).tagName
// true везде кроме IE, в котором this === window
this == node;
// отменяем всплытие события
if (e.stopPropagation)
e.stopPropagation()
else
e.cancelBubble
// или просто используем вариант, который
// для совместимости работает во всех браузерах.
e.cancelBubble = true
// убираем действие по умолчанию (в данном случае клик)
if (e.preventDefault)
e.preventDefault()
else
e.returnValue = false
// при attachEvent (как здесь) работает только в IE;
// при назначении напрямую (node.onclick) — везде
return false;
}, false):