javascript事件的绑定基础实例讲解(34)


Posted in Javascript onFebruary 14, 2017

本文实例为大家分享了js事件绑定的具体代码,供大家参考,具体内容如下

<html> 
 <head> 
  <meta charset="UTF-8"> 
  <title></title> 
  <script type="text/javascript"> 
    
   window.onload = function(){ 
     
    var btn01 = document.getElementById("btn01"); 
     
    //为按钮绑定一个单击响应函数 
    /*btn01.onclick = function(){ 
     alert(1); 
    }; 
     
    //再为按钮绑定一个单击响应函数 
    btn01.onclick = function(){ 
     alert(2); 
    };*/ 
     
    /* 
     * 使用 对象.事件 的形式不能同时为一个元素的同一个事件绑定多个处理函数, 
     * 如果绑定了多个,则后边的会将前边的覆盖掉 
     * 
     * 如果需要同时为一个事件绑定多个响应函数,则可以使用 
     * addEventListener()这个方法来绑定响应函数 
     *  参数: 
     *   1.要绑定的事件(字符串 不要on) 
     *   2.回调函数(事件触发时,该函数将会执行) 
     *   3.是否在捕获阶段触发事件(都传false) 
     * 
     * 使用这种方式可以同时为一个事件绑定多个响应函数, 
     *  响应函数按照绑定的顺序执行 
     * 
     * 该方法不支持IE8及以下的浏览器 
     *  在这些浏览器中需要使用 attachEvent()方法来实现相同的功能 
     */ 
     
    /*btn01.addEventListener("click",function(){ 
     alert(1); 
    },false); 
     
    btn01.addEventListener("click",function(){ 
     alert(2); 
    },false); 
     
    btn01.addEventListener("click",function(){ 
     alert(3); 
    },false);*/ 
     
    /* 
     * attachEvent() 
     * - 参数: 
     *  1.事件的类型(字符串 要on) 
     *  2.回调函数 
     * 
     * attachEvent() 
     * - 可以同时为一个事件绑定多个响应函数,但是它的执行顺序不一定 
     *  ie9 ie10 先绑定先执行 
     *  ie8 后绑定先执行 
     * 
     * 这个方法只支持IE10及以下的浏览器 
     */ 
    /*btn01.attachEvent("onclick" , function(){ 
     alert(1); 
    });*/ 
     
    /*btn01.attachEvent("onclick" , function(){ 
     alert(2); 
    }); 
     
    btn01.attachEvent("onclick" , function(){ 
     alert(3); 
    });*/ 
     
    /* 
     * 在正常浏览器中使用addEventListener()来绑定 
     *  它的响应函数中的this就是绑定事件的对象 
     * 而在IE中,使用的是attachEvent()来绑定的事件 
     *  而它的响应函数中的this是window 
     */ 
    bind(btn01 , "click" , function(){ 
     alert(this); 
    }); 
     
   }; 
    
   /* 
    * 自定义一个函数,来兼容所有的浏览器 
    * 参数: 
    *  obj 要绑定事件的对象 
    *  eventStr 事件的字符串,不要on 
    *  callback 回调函数,事件触发时调用的函数 
    */ 
   function bind(obj , eventStr , callback){ 
     
    if(obj.addEventListener){ 
     //如果是正常浏览器 
     obj.addEventListener(eventStr , callback , false); 
    }else{ 
     //IE8 
     /* 
      * attachEvent()中的回调函数的this是window,需要修改为obj 
      * this是谁由函数的调用方式决定 
      * 1.以函数的形式调用,this是window 
      * 2.以方法的形式调用,this是调用方法的对象 
      * 3.以构造函数的形式调用,this是新创建的对象 
      * 4.使用call和apply调用时,this是第一个参数 
      */ 
     obj.attachEvent("on"+eventStr , function(){ 
      //在attchEvent()中不传递callback而是传递一个匿名函数 
      //这样在事件触发时,浏览器不会调用callback而是调用匿名函数 
      //在匿名函数中来调用回调函数 
      callback.call(obj); 
       
     }); 
    } 
   } 
    
    
  </script> 
 </head> 
 <body> 
   
  <button id="btn01">点我一下</button> 
   
 </body> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 原型链学习总结
Oct 29 Javascript
jquery移动节点实例
Jan 14 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
Jul 28 Javascript
JavaScript通过代码调用Flash显示的方法
Feb 02 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
JavaScript中set与get方法用法示例
Aug 15 Javascript
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
vue源码中的检测方法的实现
Sep 26 Javascript
Vue最新防抖方案(必看篇)
Oct 30 Javascript
Vue 样式切换及三元判断样式关联操作
Aug 09 Javascript
jQuery实现增删改查
Dec 22 jQuery
javascript深拷贝和浅拷贝详解
Feb 14 #Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 #Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 #Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 #Javascript
js基于myFocus实现轮播图效果
Feb 14 #Javascript
javascript 单例模式详解及简单实例
Feb 14 #Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 #Javascript
You might like
Get或Post提交值的非法数据处理
2006/10/09 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
php上传文件常见问题总结
2015/02/03 PHP
PHP扩展开发入门教程
2015/02/26 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
js分页工具实例
2015/01/28 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python selenium如何设置等待时间
2016/09/15 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python里dict变成list实例方法
2019/06/26 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
基于pandas中expand的作用详解
2019/12/17 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
股份转让协议书
2014/04/12 职场文书
护士求职信
2014/07/05 职场文书
党员个人党性分析材料
2014/12/18 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS