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学习点滴 call、apply的区别
Oct 22 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
Nov 14 Javascript
html的DOM中document对象images集合用法实例
Jan 21 Javascript
javascript js 操作数组 增删改查的简单实现
Jun 20 Javascript
Vue.js常用指令之循环使用v-for指令教程
Jun 27 Javascript
微信小程序实现animation动画
Jan 26 Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
gulp构建小程序的方法步骤
May 31 Javascript
vue中如何添加百度统计代码
Dec 19 Vue.js
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的控制语句
2006/10/09 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
JavaScript 程序编码规范
2010/11/23 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
js实现分割上传大文件
2016/03/09 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
使用SAE部署Python运行环境的教程
2015/05/05 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
Python实现针对中文排序的方法
2017/05/09 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
大学生求职自荐信
2013/12/12 职场文书
拓展策划方案
2014/06/03 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
体育教师求职信
2014/06/30 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
党建工作整改措施
2014/10/28 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python