zoukankan      html  css  js  c++  java
  • javascript高级课程-1

    绑定过个事件的难题

    二级事件绑定

    捕捉与冒泡

    实测捕捉与冒泡

    停止传播行为与阻止行为

    绑定多个事件的难题:(用途:前端特效、服务端需要监看点击次数 因此两次绑定,仅仅后面的生效问题)

    代码如下:

    <a href="#" id="a" >a</a>
    </body>
    <script type="text/javascript">
        var a = document.getElementById("a");
        a.onclick=function(){
            alert("aa");
        }
        a.onclick=function(){
            alert("bb");
        }
    </script>

    最终弹出bb这是因为覆盖掉前面的onclick属性的值

    高级绑定事件

    a.addEventListener('click',function(){
            alert("aa");
        })
        a.addEventListener('click',function(){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("bb");
        })
        a.removeEventListener('click',function(){//删除事件 第一个参数是事件 第二个是某个事件的某个值
            alert("aa");
        });
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
            #china{
                width:500px;
                height:500px;
            }
            div{
                width:80%;
                height: 80%;
                border:1px solid red;
                margin:10%;
            }
        </style>
    </head>
    <body>
    <div id="china">
        china
        <div id="a">
            a
            <div id="b">
                b
            </div>
        </div>
    </div>
    </body>
    <script type="text/javascript">
        var china = document.getElementById("china");
        var a = document.getElementById("a");
        var b = document.getElementById("b");
        a.addEventListener('click',function(){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("b-a");
        },true);
        b.addEventListener('click',function(){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("b-b");
        },true);
        china.addEventListener('click',function(){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("b-china");
        },true);
        //冒泡
        a.addEventListener('click',function(){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("m-a");
        });
        b.addEventListener('click',function(){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("m-b");
        });
        china.addEventListener('click',function(){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("m-china");
        });
    </script>
    </html>

    默认为捕捉过程

    点击china b-china m-china

    点击a  b-china b-a m-a m-china

    点击b b-china b-a b-b m-b m-a m-china

    阻止事件

    将上面的a的点击冒泡事件改为

    a.addEventListener('click',function(event){//第一个参数绑定的事件、第二个参数为函数 、第三个是冒泡还是捕捉
            alert("m-a");
            event.stopPropagation();
        });

    此时点击a b-china b-a m-a 

  • 相关阅读:
    苹果p12文件--一个苹果证书怎么多次使用(蛋疼,这些问题只有和其他企业合作才会遇到,别人的账号不可能给你,蛋疼....)
    xcode 树形管理 cocos2d-x的资源
    cocos2d-x 扩充引擎基类功能 引起的头文件重复包含问题的分析
    pytest--运行指定的测试和参数化
    adb--常用命令
    appium--desktop
    adb--环境安装
    pytest--命令行常用参数
    django -- auth模块
    pytest--常用插件
  • 原文地址:https://www.cnblogs.com/webcyh/p/11386819.html
Copyright © 2011-2022 走看看