js动态绑定事件

简介: 有关js动态绑定事件 //为元素绑定事件 function addEvent(elem,type,fn){ if(window.addEventLister){ elem.

有关js动态绑定事件

//为元素绑定事件
function addEvent(elem,type,fn){
    if(window.addEventLister){
        elem.addEventLister(type,fn,false);
    }
    else if(window.attachEvent){
        elem.attachEvent("on"+type,fn);
    }
    else{
        elem["on" + type] = fn;
    }
}

 

//将元素和方法放到数组arrelems中
function bind(elem,fn){
    var arrtmp = new Array();
    arrtmp.push(elem)
    arrtmp.push(fn);
    arrelems.push(arrtmp);
}

 

//遍历元素
function etype(type){
    for(var i=0;i<arrelems.length;i++){
        if(document.getElementById(arrelems[i][0])!=="undefined"&&document.getElementById(arrelems[i][0])!==null){
            addEvent(document.getElementById(arrelems[i][0]),type,arrelems[i][1])
        }
    }
}

//绑定事件
function elemtype(type){
    var body = document.getElementsByTagName("body")[0];  
    etype(type);
    addEvent(body,type,function(){
        etype(type);
    });
}

 

demo:

<!DOCTYPE html>
<html>
    <head>
        <title>动态绑定事件</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <input id="btn1" type="button" value="确定" />
        <div  id="test">TODO write content</div>
        <div><span id="msg0">测试</span></div>
        <script type="text/javascript">
            var arrelems = new Array();
            //为元素绑定事件
            function addEvent(elem,type,fn){
                if(window.addEventLister){
                    elem.addEventLister(type,fn,false);
                }
                else if(window.attachEvent){
                    elem.attachEvent("on"+type,fn);
                }
                else{
                    elem["on" + type] = fn;
                }
            }
            
            //将元素和方法放到数组arrelems中
            function bind(elem,fn){
                var arrtmp = new Array();
                arrtmp.push(elem)
                arrtmp.push(fn);
                arrelems.push(arrtmp);
            }
            
            //遍历元素
            function etype(type){
                for(var i=0;i<arrelems.length;i++){
                    if(document.getElementById(arrelems[i][0])!=="undefined"&&document.getElementById(arrelems[i][0])!==null){
                        addEvent(document.getElementById(arrelems[i][0]),type,arrelems[i][1])
                    }
                }
            }

            //绑定事件
            function elemtype(type){
                var body = document.getElementsByTagName("body")[0];  
                etype(type);
                addEvent(body,type,function(){
                    etype(type);
                });
            }
        </script>

        <script type="text/javascript">
            var arrhtml = ['<span id="msg1">测试一</span>'];
            var btn1 = document.getElementById("btn1");
            addEvent(btn1,"click",function(){
                document.getElementById("test").innerHTML = arrhtml[0];
            });
            
            bind("msg0",function(){
                console.log("测试000000被点击了");  
            });
          
            bind("msg1",function(){
                console.log("测试1111111111被点击了"); 
            });
            
            elemtype("click");
        </script>
    </body>
</html>

 

 

目录
相关文章
|
5月前
|
JavaScript 前端开发 Java
【Java进阶】详解JavaScript事件
总的来说,JavaScript事件是JavaScript交互设计的核心,理解和掌握JavaScript事件对于编写高效、响应式的网页应用至关重要。
97 15
|
11月前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
106 3
|
8月前
|
JavaScript 前端开发 测试技术
盘点原生JavaScript中直接触发事件的方式
本文全面探讨了原生JavaScript中触发事件的多种方式,包括`dispatchEvent`、`Event`构造函数、`CustomEvent`构造器、直接调用事件处理器以及过时的`createEvent`和`initEvent`方法。通过技术案例分析,如模拟点击事件、派发自定义数据加载事件和实现提示框系统,帮助开发者掌握这些方法在实际开发中的应用,提升灵活性与兼容性。
259 3
|
10月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
355 5
|
11月前
|
存储 JavaScript 前端开发
js事件队列
【10月更文挑战第15天】
163 6
|
11月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
585 0
|
11月前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
107 0
|
11月前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
|
11月前
|
JavaScript 前端开发 Android开发
JavaScript触摸touch事件
JavaScript触摸touch事件
|
11月前
|
JavaScript 前端开发 UED
JavaScript 计时事件
JavaScript 计时事件
60 0