CAPTURING_PHASE

Description

The following code shows how to stop Event Propagation.

Example


<!--from   w w w .ja  v  a 2  s .  c o  m-->
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
span {
  background: white;
  color: black;
  padding: 2px;
  cursor: default;
}
</style>
</head>
<body>
  <p id="block1">
    <span id="mySpan">This is a span. </span>
  </p>
  <script type="text/javascript">
    var mySpan = document.getElementById("mySpan");
    var textblock = document.getElementById("block1");

    mySpan.addEventListener("mouseover", handleMouseEvent);
    mySpan.addEventListener("mouseout", handleMouseEvent);
    textblock.addEventListener("mouseover", handleDescendantEvent, true);
    textblock.addEventListener("mouseout", handleDescendantEvent, true);

    function handleDescendantEvent(e) {
      if (e.type == "mouseover" && e.eventPhase == Event.CAPTURING_PHASE) {
        e.target.style.border = "thick solid red";
        e.currentTarget.style.border = "thick double black";
      } else if (e.type == "mouseout" && e.eventPhase == Event.CAPTURING_PHASE) {
        e.target.style.removeProperty("border");
        e.currentTarget.style.removeProperty("border");
      }
      e.stopPropagation();
    }
    function handleMouseEvent(e) {
      if (e.type == "mouseover") {
        e.target.style.background = 'white';
        e.target.style.color = 'black';
      } else {
        e.target.style.removeProperty('color');
        e.target.style.removeProperty('background');
      }
    }
  </script>
</body>
</html>

Click to view the demo





















Home »
  Javascript »
    Javascript Reference »




Array
Canvas Context
CSSStyleDeclaration
CSSStyleSheet
Date
Document
Event
Global
History
HTMLElement
Input Element
Location
Math
Number
String
Window