const ul = document.querySelector('ul')
ul.addEventListener('click',function(e){
console.log(e.target);
/* e.target.style.color = 'red' // 点击的对象
//需求。只有点击li才有效果 */
if(e.target.tagName === 'LI'){
e.target.style.color = 'red'
//修改标签样式
}
}
事件对象模型e,指的是当我们触发事件时,监听方法中的回调函数会有一个作用对象,这个作用对象所指向的是用户点击的标签,例如上述代码中,当用户在ul的标签内点击的是li标签,监听函数会生成一个对象e,这个e所指向便是li标签所拥有的标签属性对象,在控制台中会输出e会展示该li标签的所有相关信息,包含其父节点、子节点等。这也就意味着我们可以通过操作e对象从而实现对标签li的属性进行操作。
同时,也可以通过对父节点进行监听在予以判断条件来实现事件委托,这可以大大提高代码的简洁度并提高性能,也可以减少标签对象模型的创建,做到动一个节点就可以实现操作所有元素。