zoukankan      html  css  js  c++  java
  • javascript点击兼容所有浏览器封装

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>如何绑定事件处理函数</title>
        <style type="text/css"></style>
    </head>
    <body>
    <div style=" 100px;height: 100px; background-color: red;"></div>
    <script type="text/javascript">
        function addEvent(elem,type,handle) {
            if(elem.addEventListener){
                elem.addEventListener(type,handle,false);
            }else if(elem.attachEvent){
                elem.attachEvent('on'+type,function () {
                    handle.call(elem); //.call()方法调用一个函数, 其具有一个指定的this值和分别地提供的参数(参数的列表)
                })
            }else{
                elem['on'+type] = handle;
            }
        }
        var div = document.getElementsByTagName('div')[0];
        addEvent(div,'click',function () {
            console.log('aaa')
    
        })
        addEvent(div,'click',function () {
            console.log('bbb')
    
        })
    
    </script>
    
    
    </body>
    </html>
    
    <strong>代码说明</strong>
    <div><b>1.</b>obj.addEventListener(type,fn,false)IE9以下不兼容,可以为一个事件绑定多个处理程序</div>
    <div><b>2.obj.attachEvent('on'+type,fn)</b>IE独有,一个事件同样可以绑定多个处理程序</div>
    <div><b>3.</b>ele.onxxx=function(event){}兼容性很好,但是一个元素的同一个事件上只能绑定一个处理程序;基本等同于写在HTML行间上</div>

    效果图:使用原生js,addEventListener,给每个li元素绑定一个click事件,输出他们的顺序?

    1.obj.addEventListener(type,fn,false);

     div.addEventListener(事件类型,处理函数,false);

    如:div.addEventListener('click',function(){},false)

  • 相关阅读:
    BZOJ-1497 最大获利
    POJ-3680 Intervals & NOI 2008 志愿者招募 费用流
    CodeForces 663E Binary Table
    南昌区域赛-G Eating Plan
    HDU-5909 Tree Cutting
    BZOJ-4589 Hard Nim
    UVA-12633 Super Rooks on Chessboard
    SPOJ-TSUM Triple Sums
    HDU-4609 3-idiots
    Kattis-aplusb A+B problem
  • 原文地址:https://www.cnblogs.com/huanghuali/p/8576680.html
Copyright © 2011-2022 走看看