<header>
  <h2 class="title">Event -> bubbles</h2>
  <p class="description">Перевіряє, чи буде подія спливати через DOM-дерево</p>
</header>
<main>
  <div class="result">
    <div id="parent" class="container">
      <h3>Батьківський елемент</h3>
      <button id="bubbleButton" class="btn">Натисни мене (спливання)</button>
      <br><br>
      <button id="noBubbleButton" class="btn">Натисни мене (без спливання)</button>
    </div>
    <p id="output">Натисни одну з кнопок</p>
  </div>
</main>
body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

.container {
  padding: 20px;
  background-color: #eee;
  margin-bottom: 20px;
}

.btn {
  padding: 10px;
  margin-right: 10px;
  background-color: #3498db;
  color: white;
  border: none;
  cursor: pointer;
}

.btn:hover {
  background-color: #2980b9;
}
const bubbleButton = document.getElementById('bubbleButton');
const noBubbleButton = document.getElementById('noBubbleButton');
const parent = document.getElementById('parent');
const output = document.getElementById('output');

// Обробник на кнопці з дозволеним спливанням
bubbleButton.addEventListener('click', (event) => {
  output.textContent = "Подія на кнопці (спливає)";
});

// Обробник на кнопці з зупиненим спливанням
noBubbleButton.addEventListener('click', (event) => {
  event.stopPropagation(); // Зупиняємо спливання події
  output.textContent = "Подія на кнопці (спливання зупинено)";
});

// Обробник на батьківському елементі
parent.addEventListener('click', (event) => {
  output.textContent = "Подія на батьківському елементі (подія сплила)";
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.