zoukankan      html  css  js  c++  java
  • 事件委托

    事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <meta charset="utf-8">
    </head>
    <body>
        <div id = "div1">
            <a href = "http..." id = "link1">某连接</a>
            <a href = "http..." id = "link2">某连接</a>
            <a href = "http..." id = "link3">某连接</a>
            <a href = "http..." id = "link4">某连接</a>
    
            <p id = "p1">激活</p>
            <p id = "p2">取消</p>
        </div>
        <div id = "div2">
            <p id = "p3">取消</p>
            <p id = "p4">取消</p>
        </div>
        <script type="text/javascript">
            //基本事件绑定
    // var bth = document.getElementById('btn1')
    // bth.addEventListener('click', function (event) {
    //     console.log('clicked')
    // })
    //事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。
    //封装绑定函数
    function bindEvent(elem, type, fn) {
        elem.addEventListener(type, fn)
    }
    
    var div1 = document.getElementById('div1')
    bindEvent(div1, 'click', function(e) {
        e.preventDefault() //阻止默认行为
        alert('clicked')
    })
    
    //冒泡事件
    var p1 = document.getElementById('p1')
    bindEvent(p1, 'click', function(e) {
        e.stopPropagation()
        alert('激活')
    })
    var body = document.body
    bindEvent(body, 'click', function(e) {
        alert('取消')
    })
    
    
    //事件代理
        </script>
    
    
    </body>
    </html>

    事件代理实例,选项卡

    <!DOCTYPE html>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
        *{margin:0;padding:0;}
        </style>
    </head>
    <body>
        <ul id= "mylist">
            <li id="list1">1</li>
            <li id="list2">2</li>
            <li id="list3">3</li>
            <li id="list4">4</li>
            <li id="list5">5</li>
        </ul>
    
    </body>
    </html>
    
    <script type="text/javascript">
        var list = document.getElementById('mylist');
        var listchild= document.getElementsByTagName('li');
        for(var i=0; i<listchild.length; i++) {
            listchild[i].addEventListener('click', function() {
                this.style.background = 'red';
            })
        }
    </script>

    绑定不同事件

    <!DOCTYPE html>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
        *{margin:0;padding:0;}
        </style>
    </head>
    <body>
        <ul id= "mylist">
            <li id="list1">1</li>
            <li id="list2">2</li>
            <li id="list3">3</li>
            <li id="list4">4</li>
            <li id="list5">5</li>
        </ul>
    
    </body>
    </html>
    <script type="text/javascript">
        var list = document.getElementById('mylist');
        list.addEventListener('click', function(event) {
            event = event || window.event;
            var target = event.target || event.srcElement;
            switch(target.id) {
                case "list1" : alert('list1');
                        break;
                case "list2" : alert('list2');
                        break;
                case "list3" : alert('list3');
                        break;
                case "list4" : alert('list4');
                        break;
                case "list5" : alert('list5');
                        break;
            }
        });
    </script>
    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset=utf-8" />
    </head>
    
    <body>
        <table id="table1">
            <tr><td>1</td></tr>
            <tr><td>2</td></tr>
            <tr><td>3</td></tr>
        </table>
    </body>
    
    </html>
    <script type="text/javascript">
        function bindEvent(elem,type,fn){
            elem.addEventListener(type,fn)
        }
        var table1 = document.getElementById("table1")
        bindEvent(table1,'click',function(e){
            alert(e.target.innerText);
        })
    </script>
  • 相关阅读:
    Python脚本抓取京东手机的配置信息
    Python中的Pandas模块
    Python中的Pandas模块
    XML和JSON数据格式
    XML和JSON数据格式
    Linux运维比较常用的一些脚本
    Linux运维比较常用的一些脚本
    Keepalived高可用集群
    Keepalived高可用集群
    Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)
  • 原文地址:https://www.cnblogs.com/sarah-wen/p/10823876.html
Copyright © 2011-2022 走看看