• Javascript Dom 事件冒泡


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="developer" content="Realazy" />
    <meta name=”author” content=”http://www.ketaoke.com/” />
    <title>Bubble in JavaScript DOM</title>
    <style type="text/css" media="screen">
     div * {display:block; margin:4px; padding:4px; border:1px solid white;}
     textarea {20em; height:2em;}
    </style>
    <script type="text/javascript">
        //<![CDATA[
        function init(){
      var log = document.getElementsByTagName('textarea')[0];
      var all = document.getElementsByTagName('div')[0].getElementsByTagName('*');
      for (var i = 0, n = all.length; i < n; ++i){
       all[i].onmouseover = function(e){
        this.style.border = '1px solid red';
    
        log.value = '鼠标现在进入的是: ' + this.nodeName;
       };
       all[i].onmouseout = function(e){
        this.style.border = '1px solid white';
       };
      }
    
      var all2 = document.getElementsByTagName('div')[1].getElementsByTagName('*');
      for (var i = 0, n = all2.length; i < n; ++i){
       all2[i].onmouseover = function(e){
        this.style.border = '1px solid red';
    
        if (e) //停止事件冒泡
         e.stopPropagation();
        else
         window.event.cancelBubble = true;
        
        log.value = '鼠标现在进入的是: ' + this.nodeName;
       };
       all2[i].onmouseout = function(e){
        this.style.border = '1px solid white';
       };
      }
     }
     window.onload = init;
        //]]>
    </script>
    </head>
    <body>
    <h1>Bubble in JavaScript DOM</h1>
    <p>DOM树的结构是:</p>
    <pre><code>
    UL
      - LI
         - A
       - SPAN
    </code></pre>
    <div>
     <ul>
      <li><a href="#"><span>Bubbllllllllllllllle</span></a></li>
      <li><a href="#"><span>Bubbllllllllllllllle</span></a></li>
     </ul>
    </div>
    <textarea></textarea>
    <p>鼠标进入UL的任何一个子元素,如果不停止冒泡,我们从UL到SPAN都定义了鼠标悬停(<code>mouseover</code>)事件,这个事件会上升了UL,从而从鼠标所进入的元素到UL元素都会有红色的边。</p>
    <div>
     <ul>
      <li><a href="#"><span>Bubbllllllllllllllle</span></a></li>
      <li><a href="#"><span>Bubbllllllllllllllle</span></a></li>
     </ul>
    </div>
    <p>如果停止冒泡,事件不会上升,我们就可以获取精确的鼠标进入元素。</p>
    </body>
    </html>
  • 相关阅读:
    greenDao 学习之坑 "java-gen" 目录下的类不能引用
    fastboot 刷system.img 提示 sending 'system' (*KB)... FAILED (remote: data too large)
    AndroidStudio导入第三方开源库 --文件夹源码
    git 克隆项目 与 分支简单操作
    Jquery当选中后费用或什么信息会自增长
    Jquery中各种标签的含义集合
    Jquery判断是否重复(连接到后台数据库进行比较)
    Jquery按空格键选中复选框或单选框
    JS(JQuery)操作Array的相关方法
    前端知识点-人资相关知识点
  • 原文地址:https://www.cnblogs.com/gsbhz/p/1850222.html
Copyright © 2020-2023  润新知