javascript自学002--DOM事件

时间:2021-02-16 08:00:40

事件流:元素接收事件的顺序

1.事件冒泡:事件由最具体的元素开始接收,逐级向上传递到document元素。即从里到外。

2.事件捕获:由外到里,先接收的是document然后逐级向内,最后才到具体的元素。

DOM0级事件处理程序

给元素绑定一个事件:element.event = function(){};

比如:给按钮加一个点击事件,弹出这是一个按钮  var obtn = document.getElementById('btn');

obtn.onclick = function(){alert("这个是按钮");}

取消元素绑定的事件可以将执行的函数改为空     obtn.onclick = null;

0级只能绑定一个同名的事件,绑定两个及以上时,后面的会覆盖前面的,只能显示最后绑定的那个。

DOM2级事件处理程序

添加事件  addEventListenner();里面接收三个参数:事件名,执行的函数,是否冒泡(事件名不要加on;true为冒泡 false不冒泡)。

移除事件  removeEventListenner();里面也是三个参数,与添加事件的参数一致才能移除;

dom2会有兼容性问题   IE9以前版本并不识别addeventlistenner 和 removeEventListenner

ie:添加事件  attachEvent()和dettachEvent();接收两个参数:事件名(有on),执行的函数;

在使用时,通常要用能力检测:if(addEventListenenr){addEventListenenr();}else(){attachEvent();}

if(removeEventListenenr){removeEventListenenr();}else(){dettachEvent();}

dom2级可以给同一个元素绑定多个同名的事件。

DOM事件对象  event

事件对象:在触发DOM上的事件都会产生一个对象 event 里面保存着这个事件的所有内容

介绍几个常用的属性和方法:

1.type属性,用于获取事件类型 eg:obtn.onclick = function(event){alert(event.type);}  //弹出click.

2.target属性,用于获取事件目标,即被绑定事件的元素。

3.stopProgation()方法,用于阻止冒泡

4.preventDefault()方法,用于阻止默认行为    比如a元素默认是跳转到另一个页面打开url的地址

调用event.preventDefault();就不会跳转。

IE中的事件对象

1.type属性与DOM中的一致;

2.获取事件目标:srcElement属性

3.阻止事件冒泡是用cancelBubble属性  设置为true

4.阻止默认行为:returnValue属性设置为false

兼容性:ie8之前不能识别event,用的是window.event

处理办法:var event = event || window.event;