var GLOBAL = {};
GLOBAL.namespace=function(str){ var arr = str.split("."),o = GLOBAL; for (i=(arr[0]=="GLOBAL")?1:0;i<arr.length;i++){ o[arr[i]] = o[arr[i]] || {}; o=o[arr[i]]; } } GLOBAL.namespace("DOM"); GLOBAL.DOM.getElementsByClassName = function(str,root,tag){ if(root){ root = typeof root =="string" ? document.getElementById(root) : root; }else{ root = document.body; } tag = tag || "*"; var els = document.getElementsByTagName(tag),arr=[]; for(var i=0,n=els.length;i<n;i++){ for(var j=0,k=els[i].className.split(" "),l=k.length;j<l;j++){ if(k[j]==str){ arr.push(els[i]); break; } } } return arr; } GLOBAL.DOM.addClass = function(node,str){ if(!new RegExp("(^|\\s+)"+str).test(node.className)){ node.className = node.className + " " + str; } } GLOBAL.DOM.removeClass = function(node,str){ node.className = node.className.replace(new RegExp("(^|\\s+)"+str),""); } GLOBAL.namespace("Event"); //增加scope参数,用于设置handler中的this指针指向,默认指向node节点。 GLOBAL.Event.on = function(node,eventType,handler,scope){ node=typeof node =="string" ? document.getElementById(node) : node; scope = scope || node; if(document.all){ node.attachEvent("on" + eventType,function(){handler.apply(scope,arguments)}); }else{ node.addEventListener(eventType,function(){handler.apply(scope,arguments)},false); } }