问题描述
给li绑定了click事件,结果点击li里面的a,span标签不会冒泡到父元素li上,只有点击li的其余部分(padding)才会触发点击事件
相关代码
document.querySelector('.vertical').addEventListener('click', function(event) {
console.log(event.target)
var e = event.target;
if (e.nodeName.toLowerCase() == 'li'){
var iconfont = e.querySelector('.iconfont');
if (iconfont) {
if (iconfont.innerHTML == '') {
iconfont.innerHTML = ''
iconfont.nextElementSibling.style.display = 'block';
}else {
iconfont.innerHTML = ''
iconfont.nextElementSibling.style.display = 'none';
}
}
}
}, false)
//html部分
<ul class="vertical">
<li>
<a href="#">默认展开</a>
<span class="iconfont"></span>
<ul>
<li>选项一</li>
<li>选项二</li>
<li>选项三</li>
<li>选项四</li>
</ul>
</li>
<li>
<a href="#">解决方案</a>
<span class="iconfont"></span>
<ul>
<li>移动模块</li>
<li>后台模板</li>
<li>电商平台</li>
</ul>
</li>
<li><a href="#">云市场</a></li>
<li><a href="#">社区</a></li>
</ul>
实际情况
开始是点击a,span没有反应,然后再点击靠近li边缘的地方,就可以了,不知道为什么
地址:https://www.cnblogs.com/liuga...
我只是大自然的搬运工
document.querySelector('.vertical').addEventListener('click', function(event) {