javascript的事件机制

首先,让我们来看一幅图,这样便让我们更加理解JS的事件机制,如图:



首先,让我们来举个例子,在两个同心圆中,当我们来点圆心的时候,其实我们点的是两个圆的圆心,那我们如何来区分我们点击是哪个圆的圆心呢?那么联系我们Web里面,在界面上,当我们来点击某个元素的时候,我们又是怎么区分的呢?其实早在IE4与Netscope浏览器之争的时候,他们提出来了两个方案,得到两个完全不同事件概念。

IE的事件冒泡:联系冒泡,我们知道在水中冒泡的原理,即是水泡一直往上冒出的过程,那么当我们点击页面的某个元素时,先是从最底层的子元素开始的;

Netscope的事件捕获: 即与事件冒泡截然相反,即我们是最先点击最外层的元素;


于是:对于事件的处理,DOM0级是按冒泡事件处理的,DOM2级事件处理则综合了两个事件处理的过程的;先捕获事件,然后进行冒泡处理;



下面我给出跨浏览器的事件处理js:


<span style="white-space:pre">	</span>addHandle: function(obj,type,fn) {
		if(window.addEventListener) {
			obj.addEventListener(type,fn,false);
		} else if(window.attachEvent) {
			obj.attachEvent('on'+type,fn);
		} else {
			obj['on'+type] = fn;
		}
	},

	removeHandle: function(obj,type,fn) {
		if(window.addEventListener) {
			obj.removeEventListener(type,fn,false);
		} else if(window.attachEvent) {
			obj.detachEvent('on'+type,fn);
		} else {
			obj['on'+type] = null;
		}
	},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值