Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Dom Bubbling">
  <meta charset="utf-8">
  <title>DOM Bubbling</title>
</head>
<body>
  <div id="group">
    <div id="sports"> sports
      <div id="swim">swim</div>
      <div id="cycle">cycle</div>
    </div>
  </div>
</body>
</html>
 
#group {
  position: absolute;
  left: 100px;
  top: 50px;
}
#sports, #swim, #cycle {
  border: solid blue 1px;
  margin: 20px;
  width: 100px;
  height: 150px;
  background-color: green;
}
#swim {
  width: 50px;
  height: 30px;
  background-color: yellow;
}
#cycle {
  width: 50px;
  height: 30px;
  background-color: yellow;
}
 
window.onload = function () {
  var sportsclick = document.getElementById('sports');
  var swimclick = document.getElementById('swim');
  var cycleclick = document.getElementById('cycle');
  
  if(sportsclick.addEventListener) {
    // false 이면 버블링시에만 처리, true이면 캡쳐링시에만 처리 
    sportsclick.addEventListener('click', showSports, false);
    swimclick.addEventListener('click', showSwim, false);
    cycleclick.addEventListener('click', showCycle, false);
  } else {
    sportsclick.attachEvent('click', showSports);
    swimclick.attachEvent('click', showSwim);
    cycleclick.attachEvent('click', showCycle);
  }
  
  function showSports() {
    js.log('sports');
  }
  
  function showSwim(event) {
    js.log('swim');
    if(event.stopPropagation) {
      event.stopPropagation();
    } else {
      event.cancelBubble = true; // for IE
    }
  }
  
   function showCycle(event) {
    js.log('cycle');
    if(event.stopPropagation) {
      event.stopPropagation();
    } else {
      event.cancelBubble = true; // for IE
    }
  }
  
 }
//// utils
var js = {
  lineNumber: 1
};
js.log = function(text) {
  var node, child, lineText;
  node = document.getElementById('result');
  if (!node) {
    node = document.createElement('div');
    node.id = 'result';
    document.body.appendChild(node);
  }
  child = document.createElement('div');
  lineText = js.lineNumber + '.';
  lineText = Array.isArray(text) ? lineText + '[' + text + ']' : lineText + text;
  if (arguments.length > 1) {
    for (var k = 1; k < arguments.length; k++) {
      lineText += arguments[k];
    }
  }
  child.innerText === undefined ? child.textContent = lineText : child.innerText = lineText;
  node.appendChild(child);
  js.lineNumber += 1;
  return this;
};
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x