我的java全栈开发之路-5事件封装

/*
 *obj   操作对象
 *eName 事件名(去掉on)
 *eFn   函数
*/

/*添加事件*/
function addEvent(obj , eName , eFn){
	 /*我们这里把obj.arr当做判断,当你是第一次,obj.arr是undefined,
	 这个时候我们执行else里面的语句,这个时候再定义obj.arr并且将eFn放进去。如果是第二次,直接push  eFn函数进去就行了*/
	if(obj.arr){
		obj.arr.push(eFn);
	}else{
	 	obj.arr = [eFn];
	}
	obj.addEventListener ? obj.addEventListener(eName , eFn) : obj.attachEvent("on"+eName , eFn);
}
/*解绑事件*/
function removeEvent(obj , eName , eFn){
	/*判断函数是否为空 若不为空则清楚指定事件函数 否则默认清楚该事件的所有函数*/
	if(eFn){
		for (var i = 0; i < obj.arr.length; i++) {
			if(eFn + "" === obj.arr[i]){
				obj.removeEventListener ? obj.removeEventListener(eName , obj.arr[i]) : obj.detachEvent("on"+eName , obj.arr[i]);
			}
		}
	}else{
		for (var i = 0; i < obj.arr.length; i++){
			obj.removeEventListener ? obj.removeEventListener(eName , obj.arr[i]) : obj.detachEvent("on"+eName , obj.arr[i]);
		}
	}
}



猜你喜欢

转载自blog.csdn.net/DesirableLove/article/details/80867707