一个简单js框架的实现过程

function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
return getComputedStyle(obj,false)[attr];
}
}

function addEvent(obj,type,fn){
if(obj.attachEvent){
obj.attachEvent('on'+type,function(){
fn.call(this);
});
}else{
obj.addEventListener(type,fn,false);
}
}

function getClass(obj,claName){
var oClass = obj.getElementsByTagName('*');
for(var i=0;i<oClass.length;i++){
if(oClass[i].className = claName){
return oClass[i];
}
}
}

function Qiguo($arg){
this.elements = [];
switch(typeof $arg){
case 'function' :
addEvent(window,'load',$arg);
break;
case 'string' :
switch($arg.substring(0,1)){
case '#':
this.elements = document.getElementById($arg.substring(1));
break;
case '.':
this.elements = getClass();
break;
default:
this.elements = document.getElementsByTagName($arg);
}
break;
}
}

Qiguo.prototype.click = function(fn){
addEvent(this.elements,'click',fn);
return this;
}

function $($arg){
return new Qiguo($arg);
}

$(function(){
$("#text").click(function(){
alert('1123');
})
})

关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流