Event Bubbling

 HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Event Bubbling</title>
    <link rel="stylesheet" href="EventBubbling.css">
</head>
<body>
    <div>
<ul>
    <li>one</li>
    <li>two</li>
    <li>three</li>

</ul>
    </div>
    <script src="EventBubbling.js"></script>
</body>
</html>

CSS

div{
    height: 400px;
width: 500px;
background-color: pink;
}
ul{
    background-color: blue;
}
li{
    background-color: greenyellow;
}

JS

let div = document.querySelector("div");
let ul = document.querySelector("ul");
let lis = document.querySelectorAll("li");

div.addEventListener("click", function () {
  console.log("div clicked");
});
ul.addEventListener("click", function () {
  console.log("ul clicked");
});

for (li of lis) {
  li.addEventListener("click", function () {
    console.log("list clicked");
  });
}

AFTER StopPropogation
let div = document.querySelector("div");
let ul = document.querySelector("ul");
let lis = document.querySelectorAll("li");

div.addEventListener("click", function (event) {
    event.stopPropagation();
  console.log("div clicked");
});
ul.addEventListener("click", function (event) {
    event.stopPropagation();
  console.log("ul clicked");
});

for (li of lis) {
  li.addEventListener("click", function (event) {
    event.stopPropagation();
    console.log("list clicked");
  });
}






Comments

Popular posts from this blog

Callback Hell

TODO list with DOM

Refactoring callback hell code