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中的私有成员
Sep 18 Javascript
JavaScript 继承详解(一)
Jul 13 Javascript
javascript下使用Promise封装FileReader
Feb 19 Javascript
JavaScript中对象的不同创建方法
Aug 12 Javascript
JavaScript 继承详解(六)
Oct 11 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
js实现自定义进度条效果
Mar 15 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
使用Javascript简单计算器
Nov 17 Javascript
Vue插件从封装到发布的完整步骤记录
Feb 28 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
es6函数之箭头函数用法实例详解
Apr 25 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
社区(php&amp;&amp;mysql)四
2006/10/09 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
Vue路由权限控制解析
2020/11/09 Javascript
详解Python Socket网络编程
2016/01/05 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
Python语言快速上手学习方法
2018/12/14 Python
Python中@property的理解和使用示例
2019/06/11 Python
python中 * 的用法详解
2019/07/10 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Python定时器线程池原理详解
2020/02/26 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
个人工作表现评价材料
2014/09/21 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书