一、模拟jquery里面on方法源码的实现
jQuery.prototype.myOn = function(type,handle){
for(var i = 0 ;i < this.length;i++){
//创建一个事件存储空间 this.cacheEvent
// 如果没有事件存储空间则创建
if(!this[i].cacheEvent){
this[i].cacheEvent = {};
}
// 如果事件存储空间中没有事件类型
if(!this[i].cacheEvent[type]){
this[i].cacheEvent[type] = [handle];
}else{
this[i].cacheEvent[type].push(handle);
}
}
}
二、 模拟jquery里面trigger方法源码的实现
jQuery.prototype.myTrigger = function(type){
var params = arguments.length > 1 ? [].slice.call(arguments,1) : [];
var self = this;
for(var i = 0;i < this.length;i++){
this[i].cacheEvent[type].forEach(function(ele,index){
ele.apply(self,params);
})
}
}
这是这几天学到的两个方法模拟源码的实现,通过老师的讲解和自己的理解,希望可以帮助大家