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 对象定义方法 简单易学
Mar 22 Javascript
jQuery学习4 浏览器的事件模型
Feb 07 Javascript
jQuery 获取对象 定位子对象
May 31 Javascript
appendChild() 或 insertBefore()使用与区别介绍
Oct 11 Javascript
js 数组操作之pop,push,unshift,splice,shift
Jan 29 Javascript
jquery 新建的元素事件绑定问题解决方案
Jun 12 Javascript
jquery任意位置浮动固定层插件用法实例
May 29 Javascript
ajax接收后台数据在html页面显示
Feb 19 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
ES6 更易于继承的类语法的使用
Feb 11 Javascript
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
php.ini 中文版
2006/10/28 PHP
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
原生js实现验证码功能
2017/03/16 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python中的自省(反射)详解
2015/06/02 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
Django视图类型总结
2021/02/17 Python
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
4s店机修工岗位职责
2013/12/20 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年妇女工作总结
2014/12/06 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python