1. 程式人生 > >js事件繫結,事件流,事件代理的一些理解

js事件繫結,事件流,事件代理的一些理解

一、事件繫結:

事件繫結的三種方法:

1、在DOM中直接繫結:

//<ul id="parent-list" onclick="printName(this)"> //this指當前發生時間的html元素

2、在js程式碼中繫結:

var node = document.getElementById("parent-list");
node.onclick = function(){
	console.log(this);           //this指當前發生時間的html元素
}

3、繫結監聽函式:(addEventListener  或者 attachEvent,可以繫結多個監聽事件)

function addEvent(obj, type, handle){
	try{
		obj.addEventListener(type, handle, false);
	}
	catch(e){
		try{
			obj.attachEvent('on'+type, handle);
		}
		catch(e){
			obj['on' + type] = handle;
		}
	}
}

比較相容的寫法:不過在addEventListener  或者 attachEvent都不支援的情況下只能繫結一個函式,不能繫結多個。

!!!注意:

1、addEventListener 可以再同一個元素上繫結很多個事件


2、

3、

二、事件流:

捕獲:所繫結的相同事件從祖先元素到子元素觸發。

冒泡:所繫結的相同事件從子元素到祖先元素觸發。

三、事件代理:

應用場景:同一個ul下如果有很多個li標籤