zoukankan      html  css  js  c++  java
  • js addEventListener

                window.onload = function () {
                    var lis = document.getElementById("list").getElementsByTagName("li");
                    for (var i = 0; i < lis.length; i++) {
                        lis[i].addEventListener('click', li_click, false);
                    }
                }
                function li_click()
                {
                    var that = this;
                    console.log(that);
                    var span = that.getElementsByTagName("span")[0];
                    console.log(span.innerText);
                }
     <script>
            var user = document.getElementById("user");
            var pwd = document.getElementById("pwd");
            //focus 获得焦点
            user.addEventListener("blur", function () {
                //check_length(user); //传递参数
                check_length.call(user); //把该函数的this 更改为user
    
            }, false);
            pwd.addEventListener("blur", function () {
                check_length(pwd);
            }, false);
    
            function check_length(obj) {
                var that = obj;
                var that1 =this;
                if (that.value.length < 1) {
                    alert("");
                }
                console.log("user||pwd");
            }
    
    
        </script>

    //事件捕获 与冒泡

            var dds = ul.getElementsByTagName("dd");
    /*         for (var i = 0; i < dds.length; i++) {
                dds[i].addEventListener("click", function () {
                    //check(dds[i]); //传递参数 为未定义
                    check(this); //传递参数
                }, true);
            }
            function check(obj)
            {
                var taht = obj;
                console.log(taht);
            } */
            for (var i = 0; i < dds.length; i++) {
                dds[i].addEventListener("click", check, true);
            }
            function check(e)
            {
                var taht = e.target;
                console.log(taht);
            }

    第三个参数默认值是false,表示在事件冒泡阶段调用事件处理函数;如果参数为true,则表示在事件捕获阶段调用处理函数。

    详细  转自 :   https://segmentfault.com/a/1190000005654451

    JS addEventListener多次绑定同一事件,触发多次

     
     //绑定删除文件
        function bind_delfile()
        {
            var file_dels = document.getElementsByClassName("file_del");
    
            for (var i = 0; i < file_dels.length; i++) {
    
                file_dels[i].addEventListener("click", del_file, true);
            }
            function del_file(e) {
                var that = e.target;
                that = that.parentNode.parentNode;
                var md5 = that.getAttribute("md5"); 
                //检测对象是否相等
                for (var j = 0; j < u_files.length; j++) {
                    if (u_files[j].filemd5 == md5) {
                        u_files.splice(j, 1);
                        break;
                    }
                }
                //此处多次绑定后 会触发 2次事件
                that.parentNode && that.parentNode.removeChild(that);
            }
    
        }
    
    
    
    
    

    addEventListener 多重监听问题


    http://tianfangye.com/2014/02/17/multiple-event-listeners/
  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/enych/p/11471464.html
Copyright © 2011-2022 走看看