1、js事件机制
js中事件的发生包括捕获和冒泡两个阶段,两个阶段的传播顺序为
捕获:从最外边父元素节点传递至发生事件的元素节点,即由外到内;
冒泡:从发生事件的元素节点传递至最外边父元素节点,即由内到外;
就像图中所画的那样,事件是先从最外层节点开始到事件节点的捕获阶段,然后从事件节点到最外层节点的冒泡阶段。但由于IE8及其低版本的浏览器不支持捕获事件,所以现在很多事件都是在冒泡中进行事件处理的。
2、事件监听
对事件的监听执行一般有一下三种方法
1.在HTML中对事件进行绑定;
<button id="btn" οnclick="myClick()">点击</button>
2.在js中对DOM元素进行事件绑定;
document.getElementById("btn").onclick = myClick;
3.利用监听函数addEventListener("事件名",function(){},false);
removeEventListenter("事件名",Fun,false)用于解除事件的绑定监听,与addEventListener对应,用法相同
但是这种方法在IE8及其低版本浏览器中不能兼容,可以使用attachEvent("事件名",Fun)来进行绑定,因为浏览器
不支持捕获事件,所以没有第三个参数。detachEvent("事件名",Fun)与之对应为解除绑定。
一般的事件用法:
3、如何阻止浏览器的默认事件的发生
对于前两种的事件,如果想阻止后面的操作的话,只需要在你需要阻止的位置加上一个 return false;
对第三种情况绑定的事件,阻止默认事件,需要用到event.preventDefault();