亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 擴展 > jQuery > 正文

JQuery教程:簡化JQuery

2024-09-06 20:04:34
字體:
來源:轉載
供稿:網友
這是以前整理的一些代碼,與jqer分享,希望對大家能有些幫助。

話說功能愈發強大的jquery體積也不再小巧,55k(minified)的大小雖然不能說很大,但如果用在一些小型項目或網站上,也不算小,那么我們何不根據自己項目特點,簡化或改寫jquery呢,follow me!

首先是jquery的核心代碼:
代碼:
//不完全一致,但實現手段大致如此
(function(){
  window._$ = window.$;
  var $ = window.$ = function(s) {
    return new $.fn.init(s);
  };
  $.fn = $.prototype = {
    init: function(s) {
      if(!s) return this;
      if (s.nodetype) {
        this.e = [];
        this.e.push(s);  //存儲獲取到的elements      
        return this;
      }
      if (typeof s == “string”) {
        return $().find(s);
      }
      return this;
    },
    find: function(s) {
      //根據傳入的string,查找dom
    }
  };
  // extend擴展方法
  $.fn.extend = function(p) {
    for(var key in p) {
      if(!$.fn[key]) {
        $.fn[key] = p[key];
      }
    }
  };
  $.fn.init.prototype = $.fn;
})();
$().extend({
  “a”: function(s){},
  “b”: function(s){}
});
再附上我簡化的版本
代碼:
// by cnwander
(function(){
window._$ = window.$;
var eleexpr =  /([#/.a-za-z])([^/s]+)/g;
var $ = window.$ = function(s) {
     return new $.fn.init(s);
};
$.fn = $.prototype = {
  init: function(s) {
   this.e = null;
   if(!s) return this;
   if (s.nodetype) {
    this.e = [];
    this.e.push(s);
    return this;
   }
   if (typeof s == “string”) {
    return $().find(s);
   }
   else
    return this;
  },
  find: function(s) {
   var wrap = this.e || [document];
   var result = [];
   for(var key in wrap) {
    var target = wrap[key];
    while(eleexpr.test(s)) {
     var first = regexp.$1,
      content = regexp.$2;
     target = $().clean(target,content,first);
    }
    if(target == null)
     result = null;
    else
     for(var i = 0; i < target.length; i++)
      result.push(target[i]);
   }
   this.e = result;
   return this;   
  },
  clean: function(wrap,content,type){
   if(!wrap) return null;
   wrap = wrap instanceof array ? wrap : [wrap];
   var result = new array();
   for(var key in wrap) {
    var temp;
    switch(type) {
    case “#”:
     temp = wrap[key].getelementbyid(content);
     break;
    case “.”:
     temp = $().getelemsbyclassname(content,wrap[key]);
     break;
    default:
     temp = wrap[key].getelementsbytagname(type+content);
    }
    if(temp) {
     temp = temp.length ? temp : [temp];
     for (var i = 0; i < temp.length; i++)
      if(temp[i].nodetype) result.push(temp[i]);
    }
   }
   result = result.length <= 0 ? null : result;
   return result;
  },
  getelemsbyclassname: function(classname,elem,tag) {
   tag = tag || “*”;
   elem = elem || document;
   elem = elem instanceof array ? elem : [elem];
   var result = new array();
   for(var key in elem) {
    var allelems = elem[key].getelementsbytagname(tag) || elem[key].all;
    var oelem;
    for(var i=0; i<allelems.length; i++){
     oelem = allelems[i];
     var list = oelem.classname.split(” “);
     for(var j=0; j<list.length; j++){
      if(list[j] == classname) result.push(oelem);
     }      
    }
   }
   return result.length <= 0 ? null : result;
  }
};
$.fn.extend = function(p) {
  for(var key in p) {
   if(!$.fn[key]) {
    $.fn[key] = p[key];
   }
  }
};
$.fn.init.prototype = $.fn;
})();
$.ajax = function(url,poststr,lastfunc,errfunc) {
var ajax = false;
if(window.xmlhttprequest) {
  ajax = new xmlhttprequest();
  if (ajax.overridemimetype) {
   ajax.overridemimetype(”text/xml”);
  }
}
else if (window.activexobject) {
  try {
   ajax = new activexobject(”msxml2.xmlhttp”);
  }
  catch (e) {
   try {
      ajax = new activexobject(”microsoft.xmlhttp”);
    }
   catch (e) {
   }
  }
}
if (!ajax) {
  if(errfunc) errfunc();
  return false;
}
ajax.open(”post”, url, true);
ajax.setrequestheader(”content-type”,”application/x-www-form-urlencoded”);
ajax.send(poststr);
ajax.onreadystatechange = function() {
  if (ajax.readystate == 4 && ajax.status == 200) {
   if(lastfunc) lastfunc(ajax.responsetext);
  }
}  
}
$().extend({
”html”: function(val){
  return val == undefined ?
  (this.e[0] ?
   this.e[0].innerhtml :
   null) :
  this.e[0].innerhtml = val;
},
”empty”: function() {
  for(var i in this.e) {
   var o = this.e[i];
   o.innerhtml = ”;
  }
  return this;
},
”css”: function() {
  if(!this.e || arguments.length <= 0) return this;
  if(arguments.length == 1 && typeof arguments[0] == “string”) {
   arguments[0] = arguments[0].tolowercase();
   return this.e[0].currentstyle ?
   this.e[0].currentstyle[arguments[0]] :
   window.getcomputedstyle (this.e[0], “”).getpropertyvalue(arguments[0].replace(/([a-z])/g, “-$1′));
  }
  else if(arguments.length >= 2) {
   for (var i in this.e)
   this.e[i].style[arguments[0]] = arguments[1];
  }
},
”hasclass”: function(name) {
  if(!this.e) return this;
  var allclass =  this.e[0].classname.split(” “);
  for (var key in allclass)
  if(allclass[key] == name) return true;
  return false;
},
”addclass”: function(name){
  if(this.e)
   for (var i in this.e)
    if(this.e[i].nodetype == 1)
     this.e[i].classname += ” “+name;
  return this;
},
”removeclass”: function(name){
  if(this.e)
   for (var i in this.e) {
    var temp = [],
     allclass =  this.e[i].classname.split(” “);
    for(var j = 0, k = 0; j < allclass.length; j++) {
     if(allclass[j] != name) {
      temp[k++] = allclass[j]
     }
    }
    allclass = temp.join(” “);
    this.e[i].classname = allclass;
   }
  return this;
},
”mousedown”: function(callback){
  if(!this.e) return this;
  for(var key in this.e) {
   this.e[key].onmousedown = callback;
   return this;
  }
},
”mouseover”: function(callback){if(!this.e) return this;for(var key in this.e) {this.e[key].onmouseover = callback} return this},
”mouseout”: function(callback){if(!this.e) return this;for(var key in this.e) {this.e[key].onmouseout = callback}return this}
});
才疏學淺,錯誤之處,敬請指正。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久免费看| 国产精品99久久久久久久久久久久| 狠狠色香婷婷久久亚洲精品| 浅井舞香一区二区| 久久视频在线播放| 日本高清视频精品| 国产欧美日韩专区发布| 日韩欧美大尺度| 亚洲中国色老太| 91国产在线精品| 欧美色图在线视频| 狠狠做深爱婷婷久久综合一区| 欧美怡春院一区二区三区| 国产在线精品一区免费香蕉| 国内揄拍国内精品| 伊人久久大香线蕉av一区二区| 热久久视久久精品18亚洲精品| 欧美日韩中国免费专区在线看| 欧美亚洲另类制服自拍| 欧美性猛交99久久久久99按摩| 亚洲偷熟乱区亚洲香蕉av| 亚洲最大在线视频| 疯狂做受xxxx欧美肥白少妇| 91精品国产成人| 亚洲情综合五月天| 色综合色综合久久综合频道88| 精品无人区太爽高潮在线播放| 亚洲free嫩bbb| 亚洲日韩欧美视频一区| 亚洲伊人一本大道中文字幕| 在线看福利67194| 欧美日韩国产二区| 欧美日韩免费在线| 性欧美在线看片a免费观看| 国产午夜精品视频免费不卡69堂| 亚洲精品一区中文| 亚洲成人免费在线视频| 97在线视频一区| 国产精品老牛影院在线观看| 日韩中文字幕免费视频| 在线成人一区二区| 91av视频在线免费观看| 亚洲va欧美va国产综合久久| 亚洲天堂第二页| 亚洲精品久久久久中文字幕欢迎你| 国产原创欧美精品| 国产精品视频一区国模私拍| 欧美在线影院在线视频| 国产精品香蕉国产| 日韩av综合中文字幕| 国产ts人妖一区二区三区| 欧美精品制服第一页| 欧美成人精品一区二区三区| 国产精品香蕉在线观看| 中文字幕日本精品| 91精品国产精品| 亚洲欧美制服综合另类| 日韩在线免费高清视频| …久久精品99久久香蕉国产| 欧美专区第一页| 性金发美女69hd大尺寸| 成人在线视频福利| 超薄丝袜一区二区| 亚洲国产精品久久久久秋霞不卡| 日韩中文字幕免费| 亚洲大尺度美女在线| 日韩高清人体午夜| 久久久国产精彩视频美女艺术照福利| 欧美国产高跟鞋裸体秀xxxhd| 日韩欧美国产高清91| 久久久久久久一区二区| 日韩av综合网| 成人性生交大片免费看小说| 高清欧美性猛交xxxx黑人猛交| 亚洲欧洲午夜一线一品| 在线视频国产日韩| 成人有码在线播放| 性视频1819p久久| 成人国产精品色哟哟| 国产精品自在线| 狠狠躁夜夜躁人人爽天天天天97| 亚州国产精品久久久| 欧美成人一区二区三区电影| 91精品国产自产在线老师啪| 亚洲一区av在线播放| 欧美日韩国产中文字幕| 国产成人精品免高潮在线观看| 亚洲精品一区二区久| 成人黄色大片在线免费观看| 国产精品视频久久久久| 欧美精品一区在线播放| 性色av香蕉一区二区| 欧美精品电影在线| 亚洲精品一区二区网址| 超薄丝袜一区二区| 深夜福利亚洲导航| 国产午夜精品免费一区二区三区| 97视频色精品| 91精品国产自产91精品| 国模精品系列视频| 色哟哟亚洲精品一区二区| 亚洲成人精品在线| 欧美日韩国产在线看| 亚洲美女av黄| 久久久噜噜噜久噜久久| 国产精品视频最多的网站| 精品无人区太爽高潮在线播放| 国产精品igao视频| 97精品视频在线| 午夜精品久久久久久久99热浪潮| 亚洲欧美自拍一区| 美女福利视频一区| 亚洲qvod图片区电影| 蜜臀久久99精品久久久久久宅男| 国产91av在线| 8x拔播拔播x8国产精品| 国产精品视频导航| 久久久久久久爱| 久久天天躁狠狠躁夜夜躁| 97久久精品人人澡人人爽缅北| 日韩欧美国产高清91| 久久国产视频网站| 日韩精品视频中文在线观看| 久久精品这里热有精品| 欧美激情中文字幕在线| 日韩在线国产精品| 日韩精品在线免费观看视频| 在线观看久久久久久| 日韩精品日韩在线观看| 欧美疯狂做受xxxx高潮| 亚洲美女自拍视频| 在线a欧美视频| 国产精品免费在线免费| 亚洲国产一区二区三区在线观看| 国产丝袜视频一区| 日韩亚洲欧美中文高清在线| 国产午夜精品免费一区二区三区| 亚洲福利视频网站| 久久不射电影网| 欧美性猛交xxxx富婆弯腰| 亚洲欧美成人一区二区在线电影| 日韩av中文字幕在线免费观看| 久久久爽爽爽美女图片| 美日韩精品免费视频| 成人精品在线视频| 在线观看日韩av| 国产欧美精品一区二区三区-老狼| 久久人人爽人人| 成人精品视频在线| 亚洲国产精品高清久久久| 国产午夜精品久久久| 亚洲美女在线看| 国产精品露脸av在线| 欧美在线观看一区二区三区| 亚洲精品日韩激情在线电影| 国产成人在线一区二区| 色悠悠久久久久| 91精品国产自产在线| 91精品久久久久久综合乱菊| 国产成人综合精品| 亚洲精品免费在线视频| 波霸ol色综合久久| 久久久久久av| 精品女同一区二区三区在线播放|