4.2 事件对象中的常用属性及方法
4.2.1属性
event.bubbles:属性返回一个布尔值,表示当前事件是否会冒泡泡event.eventPhase:返回一个整数值,表示事件流在传播阶段的位置> 0:事件目前没有发生。> 1:事件目前处于捕获阶段。> 2:事件到达目标节点。> 3:事件处于冒泡阶段。event.type:返回一个字符串,表示事件类型,大小写敏感;
event.timeStamp:返回一个毫秒时间戳,表示事件发生的时间;
clientX、clientY :获取鼠标事件触发的坐标html<body> <div id="d"> <p id="p">sdf</p> </div></body><script> var p = document.getElementById('p'); p.onclick = function(e){ //当前事件是否会冒泡 console.log(e.bubbles); //事件目前所处的节点 console.log(e.eventPhase); //事件类型 console.log(e.type); //事件发生的时间戳 console.log(e.timeStamp); }</script>
#### 4.2.2 事件代理/委托
event.target:对事件起源目标的引用,属性返回触发事件的那个节点。event.currentTarget:属性返回事件当前所在的节点,即正在执行的监听函数所绑定的那个节点。作为比较,target属性返回事件发生的节点。jsvar d = document.getElementById('d');d.onclick = function(e){ //返回事件节点 console.log(e.currentTarget); //返回触发节点 console.log(e.target);}
由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件。这种方法叫做事件的代理也叫 事件委托 也有人称为 事件代理```onclick = function(e){ e.target.style.background = ‘red’; }