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 indexOf函数使用说明
Jul 03 Javascript
Dojo 学习笔记入门篇 First Dojo Example
Nov 15 Javascript
javaScript checkbox 全选/反选及批量删除
Apr 28 Javascript
js获取浏览器的可视区域尺寸的实现代码
Nov 30 Javascript
javascript实现校验文件上传控件实例
Apr 20 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 Javascript
Javascript对象字面量的理解
Jun 22 Javascript
vue.js初学入门教程(2)
Nov 07 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
Dec 23 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
Vue.js 中的实用工具方法【推荐】
Jul 04 Javascript
vue 解决数组赋值无法渲染在页面的问题
Oct 28 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实现时间轴函数代码
2011/10/08 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
IE与firefox之jquery用法区别
2008/10/03 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
Python实现句子翻译功能
2017/11/14 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
详解Python字典的操作
2019/03/04 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
Internet体系结构
2014/12/21 面试题
纪检监察建议书
2014/05/19 职场文书
元旦晚会活动总结
2014/07/09 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android
OpenCV实现反阈值二值化
2021/11/17 Java/Android
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android