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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
Apr 05 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
Jun 19 Javascript
Node.js操作Firebird数据库教程
Mar 04 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
JavaScript 跨域之POST实现方法
May 07 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
实现一个 Vue 吸顶锚点组件方法
Jul 10 Javascript
vue监听键盘事件的相关总结
Jan 29 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
第一个无线电台是由谁发明的
2021/03/01 无线电
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
python单元测试unittest实例详解
2015/05/11 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
python数据化运营的重要意义
2019/11/25 Python
Python多线程获取返回值代码实例
2020/02/17 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
你们项目是如何进行变更控制的
2015/08/26 面试题
院药学专业个人求职信
2013/09/21 职场文书
物业管理专业个人的自我评价
2013/11/19 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
晨会主持词
2014/03/17 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript