(function(window){ //建立事件函數 function myAddEvent(obj,ev,fn){ if(obj.attachEvent){ obj.attachEvent('on'+ev,function(e){ if(fn.call(obj)==false){ //阻止冒泡 e.cancelBubble = true; return false; } }) }else{ obj.addEventListener(ev,function(e){ if(fn.call(obj)==false){ e.stopPropagation(); e.preventDefault(); return false; } }) } } //class選擇器調用函數 function getByClass(oParent,sClass){ var aEle=oParent.getElementsByTagName('*');//選擇父元素的全部元素 var aResult=[]; var re=new RegExp('\\b'+sClass+'\\b','i');//正則邊界 var i=0; for(i=0;i<aEle.length;i++){ if(re.test(aEle[i].className)){ aResult.push(aEle[i]); } } return aResult; } //定義函數 function blind_fn(arg){ this.elements = []; switch (typeof arg){ case 'function': myAddEvent(window,'load',arg); break; case 'string': switch (arg.charAt(0)){ case '#': var self = document.getElementById(arg.substring(1)); this.elements.push(self); case '.': this.elements=getByClass(document,arg.substring(1)); break; default://標籤 this.elements=document.getElementsByTagName(arg); } } } var zhanglei = function(arg){ return new blind_fn(arg); }; blind_fn.prototype = { css:function(attr,value){ if(arguments.length == 2){ for(var i =0;i<this.elements.length;i++){ this.elements[i].style[attr] = value; } }else if(arguments.length==1){ for(var i = 0;i<this.elements.length;i++){ for(var k in attr){ this.elements[i].style[k]=attr[k]; } } } return this; }, click:function(fn){ for(var i = 0;i<this.elements.length;i++){ myAddEvent(this.elements[i],'click',fn); } //鏈式操做 return this; }, hide:function(){ for(var i = 0;i<this.elements.length;i++){ this.elements[i].style.display = 'none'; } return this; }, show:function(){ for(var i = 0;i<this.elements.length;i++){ this.elements[i].style.display = 'initial'; } return this; }, hover:function(fnover,fnout){ for(var i = 0;i<this.elements.length;i++){ myAddEvent(this.elements[i],'mouseover',fnover); myAddEvent(this.elements[i],'mouseout',fnout); } return this; }, attr:function(attr,value){ if(arguments.length==2){ for(var i = 0;i<this.elements.length;i++){ this.elements[i].setAttribute(attr,value); } }else if(arguments.length==1){ if(typeof attr=='string'){ return this.elements[0].getAttribute(attr); } } return this; }, addClass:function(str){ for(var i = 0;i<this.elements.length;i++){ if(this.elements[i].className==''){ this.elements[i].className+=str; }else{ this.elements[i].className+=' '+str; } } return this; }, removeClass:function(str){ for(var i = 0;i<this.elements.length;i++){ if(!str){ this.elements[i].className=''; }else{ var str_ = this.elements[i].className.split(' '); for(var j = 0;j<str_.length;j++){ if(str_[j]==str){ str_.splice(j,1); this.elements[i].className = str_.join(' '); } } } } return this; }, eq:function(n){ return new blind_fn(this.elements[n]); }, index:function(){ var child = this.elements[0].parentNode.children; for(var i=0;i<child.length;i++){ if(child[i]==this.elements[0]){ return i; } } }, toggle:function(){ var _arguments=arguments; function addToggle(obj){ var count=0; myAddEvent(obj,'click',function(){ _arguments[count++%_arguments.length].call(obj); }) } var i=0; for(i=0;i<this.elements.length;i++){ addToggle(this.elements[i]); } } }; window.$ = zhanglei;})(window);