微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mousedown事件即使在冒泡阶段也会更改子元素的颜色

如何解决Mousedown事件即使在冒泡阶段也会更改子元素的颜色

我想对五个嵌套的div元素执行冒泡事件:当我单击div元素时,被单击的元素及其父元素应该更改颜色。

我在下面的代码中所做的基本上是为每个div元素设置“ mousedown”元素,这将在mousedown事件之后等待一段时间,其backgroundColor会更改:

const one = document.querySelector("#\\31");
const two = document.querySelector("#\\32");
const three = document.querySelector("#\\33");
const four = document.querySelector("#\\34");
const five = document.querySelector("#\\35");

five.addEventListener(
  "mousedown",function () {
    setTimeout(() => {
      changeBg(this);
    },1500);
  },false
);

four.addEventListener(
  "mousedown",1750);
  },false
);

three.addEventListener(
  "mousedown",function (event) {
    setTimeout(() => {
      changeBg(this);
    },2000);
  },false
);

two.addEventListener(
  "mousedown",2250);
  },false
);

one.addEventListener(
  "mousedown",2500);
  },false
);

function changeBg(t) {
  const element = document.querySelector("#\\3" + t.id);
  element.style.backgroundColor = "lightblue";
}

我遇到的但不了解的问题是,在更改单击的div和父div的颜色之前,它会突然更改子div(所有它们同时)的颜色。我错过了代码中的某些内容,还是整体上未实现?如果有人可以详细解释,我将非常高兴。

代码沙箱链接https://codesandbox.io/s/busy-goldstine-ope9w?file=/src/index.js

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。