要给下面所有li元素绑定click事件,在鼠标点击每个li的时候alert该li里面的内容;且在鼠标离开外部ul元素范围的时候弹出一个alert提示。(实现时请注意代码执行效率及浏览器兼容性、不要使用现成的框架库,用原生js编写完成)
<ul id=”ulItem”>
<li>内容1</li>
……此处省略1000+个li对象(注:不要使用循环绑定,如果使用循环绑定1000+的绑定事件会很慢)……
<li>内容n</li>
</ul>
大哥你不知道事件委托吗?li对象是动态的,你给ul绑定事件,委托到li对象上。每个li都加一个id属性区分一下,就知道你点了哪个li。实现弹框出某一个li的内容。
可以用jq封装的事件委托。$('.class').on('click',‘.class>li’, function () {$(this).attr('data-id') // 这个就是你点击的li的区分id})
let ulItem = document.getElementById('ulItem')
ulItem.addEventListener('click', (e)=>{
if(e.target && e.target.tagName === 'LI'){
alert(e.target.textContent)
}
})