首先我使用的是vanilla javascript(没有框架)。
我试图在一个尚不存在的元素上获得一个click事件监听器,所以我这样做(已经存在parentElement
):
parentElement.addEventListener( "click", function(e){
console.log(e.target)
} )
我点击的内容如下:
<a href="#" class="modal-close">
<i class="fa fa-times"></i>
</a>
我正在尝试让e.target
与a
标记匹配,但它显然与i
标记匹配,因为这是被点击的内容。因此,如果我尝试匹配A
标记,它就不会匹配。
console.log(e.target.tagName == "A") //false
如何匹配该A
代码而非其子代(i
代码)。
我知道如果我使用jQuery,我可以这样做:
$("parentElementThatExists").on("click","a.modal-close",function(e){...
这样可以正常工作。但我不是在使用jQuery。
答案 0 :(得分:2)
这对我有用
window.onload=function(){
var x = document.getElementById("x");
x.addEventListener( "click", function(e){
console.log(e.target.tagName,e.target.parentNode.tagName)
})
x.innerHTML='<a href="#" class="modal-close"><i class="fa fa-times">Click</i></a>'
}
&#13;
<div id="x"></div>
&#13;
答案 1 :(得分:1)
如果您不介意,可以使用e.currrentTarget
属性。适用于&gt; = IE9。