`
plkong
  • 浏览: 180591 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript事件设计模式(序)

阅读更多

4.让自定义事件支持多绑定

    可以用attachEvent或者addEventListener方法来实现多个事件处理程序的同时绑定,不会发生互相冲突,自定义事件同样也可以实现此机制。实现代码如下:

<script language="javascript" type="text/javascript" >
<!--
function User(){
//构造函数
}
//定义类成员
User.prototype = {
	show: function(){
		//如果有事件触发,则循环onshow数组,并触发该事件
		if(this.onshow){
			for( var i=0; i<this.onshow.length; i++ ){
				this.onshow[i]();//调用事件处理程序
			}
		}
	},
	attachOnShow: function(_eHandler){
		if(!this.onshow) this.onshow = [];//用数组存储绑定的事件处理程序引用
		this.onshow.push(_eHandler);
	}
}

var obj = new User();
function onShow1(){
	alert(1);
}
function onShow2(){
	alert(2);
}

//绑定两个事件处理程序
obj.attachOnShow(onShow1);
obj.attachOnShow(onShow2);
//调用show,触发onshow事件
obj.show();
//-->
</script>

 此机制基本实现思想就是对数组的操作。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics