关于事件委托的问题

weixin_43953947 2020-05-18 01:47:29
<body>
<ul>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
</ul>
<script>
// 事件委托的核心原理:给父节点添加侦听器, 利用事件冒泡影响每一个子节点
var ul = document.querySelector('ul');
ul.addEventListener('click', function(e) {
// alert('知否知否,点我应有弹框在手!');
// e.target 这个可以得到我们点击的对象
e.target.style.backgroundColor = 'pink';


})
</script>
</body>

点击li背景颜色会变成粉红色,但我想在下一次点击li的时候把之前点击过的背景颜色变回原本那样,这个怎么实现?
...全文
152 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
那谁呀撒 2020-05-21
  • 打赏
  • 举报
回复
是不是点哪个哪个变粉,其他的变白?
<body>
<ul>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
</ul>
<script>
// 事件委托的核心原理:给父节点添加侦听器, 利用事件冒泡影响每一个子节点
var ul = document.querySelector('ul');
var lis = document.querySelectorAll("li");
ul.addEventListener('click', function(e) {
Array.prototype.forEach.call(lis, function(value) {
if (value == e.target) {
value.style.backgroundColor = "pink";
} else {
value.style.backgroundColor = "white";
}
});
})
</script>
</body>
Let dreams fly 2020-05-19
  • 打赏
  • 举报
回复
<script>
	var ul = document.querySelector('ul');
	ul.addEventListener('click', function(e) {
		e.target.style.backgroundColor = e.target.style.backgroundColor=='pink'?'white':'pink';
	})
</script>

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧