• 大白跟着“菜鸟”学node——同名事件


    若存在两个同名事件,触发事件时,两个事件监听器的回调函数会被按次序先后调用

    实例来自菜鸟教程:

    var events=require('events');
    var emitter=new events.EventEmitter();
    emitter.on('someEvent',function(arg1,arg2){
        console.log('listener1',arg1,arg2);
    });
    emitter.on('someEvent',function(arg1,arg2){
        console.log('listener2',arg1,arg2);
    })
    emitter.emit('someEvent','arg1参数','arg2参数');

    运行结果:

     (图省事把名字命名成同名事件了……)

    来猜想一下JS中的同名事件……

    呀一下子记不太全JS的事件绑定方法有哪些和区别了……

    直接在DOM里绑定事件:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>同名事件测试</title>
    </head>
    <body>
            <button onclick="alert('1')" onclick="alert('2')">点击</button>    //谁会写这种代码啊???只是测试测试
        
    </body>
    </html>

    这样子绑定,结果弹出:1

    脚本里绑定:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>同名事件测试</title>
    </head>
    <body>
            <button>点击</button>
            <script type="text/javascript">
                window.onload=function(){
                    var btn=document.getElementsByTagName('button')[0];
                    btn.onclick=function(){
                        alert('1')
                    }
                    btn.onclick=function(){
                        alert('2')
                    }
                }
            </script>
    </body>
    </html>

    这样子绑定,结果弹出:  2

    猜猜看这个的结果,代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>同名事件测试</title>
    </head>
    <body>
            <button onclick="alert('1')" onclick="alert('2')">点击</button>
            <script type="text/javascript">
                window.onload=function(){
                    var btn=document.getElementsByTagName('button')[0];
                    btn.onclick=function(){
                        alert('3')
                    }
                    btn.onclick=function(){
                        alert('4')
                    }
                }
            </script>
    </body>
    </html>

    结果是,弹出:

        直接在DOM里绑定事件和脚本里面绑定的事件有优先级吗?还是说会触发后绑定的。

    addeventListener可以同时绑定多个事件,且都会执行:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>同名事件测试</title>
    </head>
    <body>
            <button onclick="alert('1')" onclick="alert('2')">点击</button>
            <script type="text/javascript">
                window.onload=function(){
                    var btn=document.getElementsByTagName('button')[0];
                    btn.addEventListener('click',function(){
                        alert('3')
                    });
                    btn.addEventListener('click',function(){
                        alert('4')
                    });
                }
            </script>
    </body>
    </html>

    结果,这里依次弹出 1,3,4  好厉害

  • 相关阅读:
    kotlin中值范围
    kotlin中集合
    kotlin数据解构
    Java 8 Lambda 表达式
    kotlin 之内联函数
    kotlin之函数的范围和泛型函数
    kotlin函数的参数和返回值
    kotlin 之单表达式函数
    kotlin使用中辍标记法调用函数
    kotlin之函数的基本用法
  • 原文地址:https://www.cnblogs.com/em2464/p/7995081.html
Copyright © 2020-2023  润新知