• 事件绑定与移除


    js中事件绑定

    1. 在元素标签中绑定事件

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style type="text/css">
            #div1 {
                width: 500px;
                height: 500px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div id='div1' onclick="fn()"></div>
        <script type="text/javascript">
            function fn() {
                console.log(111);  // 111
            }
        </script>
    </body>
    </html>

    2. 通过onxxx()绑定事件:这种方式绑定的事件,同一个元素的同一种事件多次绑定,后面的事件会覆盖前面的事件

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style type="text/css">
            #div1 {
                width: 500px;
                height: 500px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div id='div1'></div>
        <script type="text/javascript">
            var obj = document.getElementById("div1");
            obj.onclick = function() {
                console.log(11);
            };
            obj.onclick = function() {
                console.log(22);
            };
    
            // 只会输入22
    
            // 移除事件 obj.onclick = null
        </script>
    </body>
    </html>

    3. obj.addEventListener()绑定事件监听

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style type="text/css">
            #div1 {
                width: 500px;
                height: 500px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div id='div1'></div>
        <script type="text/javascript">
            // addEventListener方法在ie8及以下不支持,ie8中可以使用attachEvent()
            /*
             * 事件注册兼容写法,参数如下:
             *  ele:dom元素
             *  type:事件类型
             *  fn:处理函数
             */ 
            function addEvent(ele, type, fn) {
                if(ele.addEventListener) {
                    ele.addEventListener(type, fn, false);
                }else {
                    ele.attachEvent('on' + type, fn);
                }
            }
    
            var obj = document.getElementById("div1");
            addEvent(obj, 'click', function() {
                console.log(222);
            })
    
            // 移除事件
            // addEventListener --> removeEventListener
            // attachEvent --> detachEvent
        </script>
    </body>
    </html>

    jquery中事件绑定

    1. on()

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
        <style type="text/css">
            #div1 {
                width: 500px;
                height: 500px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div id='div1'>
            <span id="span1">hello world</span>
            <span id="span2">hello world</span>
        </div>
        <script type="text/javascript">
            /*
             * 语法:$(selector).on(event,childSelector,data,function)
             * 参数如下:
             *  event:事件类型
             *  childSelector: 可选,绑定到指定子元素
             *  data: 传入到函数的额外参数
             *  function:处理函数
             */
            $('#div1').on('click', '#span1', function() {
                console.log(111)
            })
    
            // 移除事件 off()
        </script>
    </body>
    </html>
  • 相关阅读:
    Codeforces1101G (Zero XOR Subset)-less 【线性基】【贪心】
    Codeforces1101F Trucks and Cities 【滑动窗口】【区间DP】
    HDU4651 Partition 【多项式求逆】
    BZOJ2554 color 【概率DP】【期望DP】
    codeforces1101D GCD Counting 【树形DP】
    codechef EBAIT Election Bait【欧几里得算法】
    BZOJ2434 [NOI2011] 阿狸的打字机 【树链剖分】【线段树】【fail树】【AC自动机】
    codeforces1093G Multidimensional Queries 【线段树】
    BZOJ3277 串 【后缀数组】【二分答案】【主席树】
    AHOI2013 差异 【后缀数组】
  • 原文地址:https://www.cnblogs.com/mengbing/p/12492976.html
Copyright © 2020-2023  润新知