事件對象作爲兩個屬性,可以幫助你完成這個任務:
event.currentTarget在事件遍歷DOM時標識事件的當前目標。它始終引用事件處理程序已附加的元素,而不是event.target,它標識事件發生的元素。 事件通知將傳遞給外部div兩次,第一次在捕獲階段,後面在冒泡階段,如果您在內部div中實例化處理程序,它將被通知。您可以在需要時停止傳播。
http://fiddle.jshell.net/hmariod/dvV4E/
document.getElementById("outer").addEventListener('click',etvFn,true);
document.getElementById("outer").addEventListener('click',etvFn,false);
document.getElementById("inner").addEventListener('click',etvFn,true);
document.getElementById("inner").addEventListener('click',etvFn,false);
document.getElementById("innerP").addEventListener('click',etvFn);
function etvFn(evt){
var phase;
if(evt.eventPhase === 1){
phase = "Capture";
}else if(evt.eventPhase === 2){
phase = "Target";
}else{
phase = "Bubbling";
}
alert("Target:" + evt.target.id + "\nCurrent Target:" + evt.currentTarget.id + "\nPhase:" + phase);
}
請發表您已經嘗試了jQuery。 – j08691