zoukankan      html  css  js  c++  java
  • 大白跟着“菜鸟”学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  好厉害

  • 相关阅读:
    基于Karma和Jasmine的angular自动化单元测试
    【转】使用SVG中的Symbol元素制作Icon
    【转】整理分析:Before 和 :After及其实例
    【转载】CSS中强大的EM
    【转】提升说服力!UI设计的心理学
    解决IE8不支持数组的indexOf方法
    KISSY Slide 组件应用遇到的一个放大缩小问题
    jQuery.extend 函数详解(转载)
    事件冒泡分析及return false、preventDefault、stopPropagation的区别
    jquery学习(一)-选择器
  • 原文地址:https://www.cnblogs.com/em2464/p/7995081.html
Copyright © 2011-2022 走看看