target与currentTarget

2017-12-06  本文已影响0人  小漠穷秋

target表示发生事件的元素,发生在目标阶段
currentTarget表示绑定事件的元素,发生在冒泡,目标,捕获阶段

案例:
<div id="outer" style="background:#099">
click outer
<p id="inner" style="background:#9C0">click inner</p>


</div>

<script type="text/javascript">  
function G(id){  
    return document.getElementById(id);      
}  
function addEvent(obj, ev, handler){  
    if(window.attachEvent){  
        obj.attachEvent("on" + ev, handler);  
    }else if(window.addEventListener){   
        obj.addEventListener(ev, handler, false);  
    }  
}  
function test(e){  
    alert("e.target.tagName : " + e.target.tagName + "\n e.currentTarget.tagName : " + e.currentTarget.tagName);  
}  
var outer = G("outer");  
var inner = G("inner");  
//addEvent(inner, "click", test);  
addEvent(outer, "click", test);  
</script>

同时注意,this和currentTarget的对象 永远保持一致。
事件流有三种阶段:捕获 目标 冒泡。需要判断每个阶段有哪些对象。

上一篇 下一篇

猜你喜欢

热点阅读