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 解析后的xml对象的读取方法细解
Jul 25 Javascript
js用Date对象处理时间实现思路及代码
Jan 31 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
Jul 18 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
javascript实现列表滚动的方法
Jul 30 Javascript
javascript中substring()、substr()、slice()的区别
Aug 30 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
js实现倒计时关键代码
May 05 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
Jan 13 Javascript
Electron-vue脚手架改造vue项目的方法
Oct 22 Javascript
vue开发环境配置跨域的方法步骤
Jan 16 Javascript
Angular单元测试之事件触发的实现
Jan 20 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 iconv函数的使用详解
2013/06/09 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
基于input动态模糊查询的实现方法
2017/12/12 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
2014年社区综治工作总结
2014/11/17 职场文书
优秀班组申报材料
2014/12/25 职场文书
维稳承诺书
2015/01/20 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
银行培训心得体会范文
2016/01/09 职场文书
python爬虫--selenium模块
2021/03/31 Python
Python面向对象编程之类的概念
2021/11/01 Python