兼容各浏览器,表示在冒泡阶段调用事件处理程序 (true 捕获阶段)
    addEvent: function(selector, eventType, func){
    var proName = “”;

    1. switch(true){<br /> case /^\./.test(selector) :<br /> proName = "className";<br /> selector = selector.replace(".", "");<br /> break;<br /> case /^\#/.test(selector) :<br /> proName = "id";<br /> selector = selector.replace("#", "");<br /> break;<br /> default:<br /> proName = "tagName";<br /> }
    2. document.body.addEventListener(eventType,function(e){<br /> function check(node){<br /> if(! node.parentNode) return;
    3. if(node[proName] == selector){<br /> func.call(node, e);<br /> };<br /> check(node.parentNode);<br /> }<br /> check(e.target);<br /> }, false);<br /> }