Работаем с событиями

Давайте рассмотрим, что мы можем извлечь из события после перехвата его с помощью соответствующего обработчика:

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):