• 事件代理机制


    1、HTML

    <!DOCTYPE html>
    <html>
    <head>
        <title>event</title>
    </head>
    <body>
        <div id="obj1">
            welcome
            <h5 id="obj2">hello</h5>
            <h5 id="obj3">world</h5>
        </div>
        <script type="text/javascript">
            var obj1=document.getElementById('obj1');
            var obj2=document.getElementById('obj2');
            obj1.addEventListener('click',function(){
                alert('hello');
            },false);
            obj2.addEventListener('click',function(){
                alert('world');
            })
        </script>
    </body>
    </html>

        简单地文档结构:document > html > body > div > h5 

         我们再上边代码的基础上,尝试点击h5标签时,弹出对应的innerHTML。常规的做法是遍历每个h5,然后在每个h5上绑定一个点击事件,这种做法在h5标签少的时候可以使用,但若有很多的h5,那就会导致性能降低。所以有如下代码:

      

    2、JavaScript

    obj1.addEventListener('click',function(e){
                var e=e||window.event;
                if(e.target.nodeName.toLowerCase()=='h5'){
                    alert(e.target.innerHTML);
                }
     
    },false);

        由于事件冒泡机制,点击了h5后会冒泡到div,此时就会触发绑定在div上的点击事件,再利用target找到事件实际发生的元素,就可以达到预期的效果。

    未完,待续......
  • 相关阅读:
    1002 写出这个数
    1001 害死人不偿命的(3n+1)猜想
    Graph I
    Tree
    进程通信
    管道
    fork函数
    Priority Queue
    Search
    游戏 slider
  • 原文地址:https://www.cnblogs.com/zhishiyv/p/14583139.html
Copyright © 2020-2023  润新知