Javascript angular2中$event.target有时获取的是当前元素的子元素,这种问题该怎么避免呢

JavaScript018

Javascript angular2中$event.target有时获取的是当前元素的子元素,这种问题该怎么避免呢,第1张

这就是事件冒泡,当一个元素触发事件后,会逐层上报给父元素、祖父元素……乃至document,也就是说这些元素都会同时触发事件。这种情况下,event.target就是指最初触发事件的那个子元素(就比如你题目中的img),而event.currentTarget才是被冒泡后触发事件的当前元素(比如li)。这也就意味着,当你点击li时,如果点到的是子元素img,则event.target就是img,而event.currentTarget则是li,而当你点到的是li里面除img之外的其他部分时,event.target和event.currentTarget都是li

所以,现在你知道该怎么做啦?就是不要使用event.target,改用event.currentTarget

<script>

var father=document.getElementById("father")

var div=father.getElementsByTagName("div")[0]

a()

function a(){

var ary=[]

var b=div.nextElementSibling

while (b){

ary.push(b)

b=b.nextElementSibling

}

console.log(ary)

}

</script>