--- title: Event.target slug: Web/API/Event/target tags: - event.target - 事件委托 (event delegation) translation_of: Web/API/Event/target ---
{{ ApiRef("DOM") }}
触发事件的对象 (某个DOM元素) 的引用。当事件处理程序在事件的冒泡或捕获阶段被调用时,它与{{domxref("event.currentTarget")}}不同。
let theTarget = event.target
event.target
属性可以用来实现事件委托 (event delegation)。
// Make a list var ul = document.createElement('ul'); document.body.appendChild(ul); var li1 = document.createElement('li'); var li2 = document.createElement('li'); ul.appendChild(li1); ul.appendChild(li2); function hide(e){ // e.target 引用着 <li> 元素 // 不像 e.currentTarget 引用着其父级的 <ul> 元素. e.target.style.visibility = 'hidden'; } // 添加监听事件到列表,当每个 <li> 被点击的时候都会触发。 ul.addEventListener('click', hide, false);
Specification | Status | Comment |
---|---|---|
{{SpecName("DOM WHATWG", "#dom-event-target", "Event.target")}} | {{Spec2("DOM WHATWG")}} | |
{{SpecName("DOM4", "#dom-event-target", "Event.target")}} | {{Spec2("DOM4")}} | |
{{SpecName("DOM2 Events", "#Events-Event-target", "Event.target")}} | {{Spec2("DOM2 Events")}} | Initial definition |
{{Compat("api.Event.target")}}
在 IE6-8 中,事件模型与标准不同。使用非标准的 element.attachEvent()
方法绑定事件监听器。在该模型中,事件对象有一个 srcElement
属性,等价于target
属性。
function hide(e) { // 支持 IE6-8 var target = e.target || e.srcElement; target.style.visibility = 'hidden'; }