为元素绑定事件(DOM):有两种 addEventListener 和 attachEvent;
 
相同点: 都可以为元素绑定事件
不同点:
  1.方法名不一样
  2.参数个数不一样addEventListener三个参数,attachEvent两个参数
  3.addEventListener 谷歌,火狐,IE11支持,IE8不支持
    attachEvent 谷歌火狐不支持,IE11不支持,IE8支持
  4.this不同,addEventListener 中的this是当前绑定事件的对象
    attachEvent中的this是window
  5.addEventListener中事件的类型(事件的名字)没有on
    attachEvent中的事件的类型(事件的名字)有on
 
 
1 对象.addEventListener("事件类型",事件处理函数,false);
  谷歌和火狐支持,IE8不支持;
    为按钮绑定点击事件
      参数1:事件的类型---事件的名字,没有on
      参数2:事件处理函数---函数(命名函数,匿名函数)
      参数3:Boolean类型,是否使用捕获,一般用false 。(详情请看后面章节的事件阶段)
//为同一个元素绑定多个相同的事件--
my$("btn").addEventListener("click",function () {
console.log("小米一岁了");
},false);
my$("btn").addEventListener("click",function () {
console.log("小米二岁了");
},false);
my$("btn").addEventListener("click",function () {
console.log("小米三岁了");
},false);
my$("btn").addEventListener("click",function () {
console.log("小米四岁了");
},false);
2 对象.attachEvent("有on的事件类型",事件处理函数)
  谷歌不支持,火狐不支持,IE8支持;

    参数1:事件类型---事件名字,有on
    参数2:事件处理函数---函数(命名函数,匿名函数)

my$("btn").attachEvent("onclick",function () {
console.log("小米一岁了");
}); my$("btn").attachEvent("onclick",function () {
console.log("小米二岁了");
}); my$("btn").attachEvent("onclick",function () {
console.log("小米三岁了");
});

3 为了解决这个兼容的问题:

//element 为要绑定事情的元素 type 为绑定那种事件 func  事件的处理函数
function addEventListener(element,type,func) {
//判断浏览器是否支持这个方法
if(element.addEventListener){
element.addEventListener(type,func,false);
}else if(element.attachEvent){
element.attachEvent("on"+type,func);
}else{
element["on"+type]=func;
}
}

JS 为任意元素添加任意事件的兼容代码的更多相关文章

  1. js 任意元素解绑任意事件的兼容代码

    hmtl代码: <input type="button" value="按钮" id="btn"/> <input typ ...

  2. JS---DOM---为元素绑定事件和解绑事件的兼容代码

    1. 绑定事件的兼容 function addEventListener(element,type,fn) { if(element.addEventListener){ element.addEve ...

  3. js为鼠标添加右击事件

    <script language="javascript">  /*document.oncontextmenu=Youji;*/  //为当前文档添加鼠标右击事件,防 ...

  4. js为元素添加onclick事件

    $("div.manu a:last").on('click',function(){ if (page == totalPage) { return; } page = page ...

  5. js给页面添加滚动事件并判断滚动方向

    <script> var scrollFunc = function (e) { var direct = 0; e = e || window.event; if (e.wheelDel ...

  6. JS---DOM---为元素绑定事件的引入,为元素绑定多个代码,兼容代码

    1. 为元素绑定事件的引入: 用src直接绑定多个,只实现最后一个(programmer2.js) <input type="button" value="按钮&q ...

  7. js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符

    js中对arry数组的各种操作小结   最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...

  8. js监听用户的键盘敲击事件,兼容各大主流浏览器

    js监听用户的键盘敲击事件,兼容各大主流浏览器 <script type="text/javascript"> document.onkeydown = functio ...

  9. 从零开始的全栈工程师——js篇2.21(事件对象 arguments 阻止事件默认行为兼容 事件委托 事件源对象)

    一.事件对象 1.常用的事件2.每个元素身上的事件都是天生存在的 不需要我们去定义 只需要我们给这个事件绑定一个方法 当事件触发的时候就会执行这个方法 3.事件绑定的写法 ①div.onclick=f ...

随机推荐

  1. ubuntu 下正确安装android手机驱动

    1. 查看手机ID号. charlesxue@THSHIBA:~/setup/cocos2d-x/cocos2d-x-/projects/simpleGame/proj.android/bin$ ls ...

  2. Auto Control 001 自动控制的一般概念

    自动控制的基本概念 一 . 自动控制系统的组成 自动控制装置:自动控制装置的组成当中涉及到了这样这样一些东西: 第1,需要有被控对象,那么这些被控对象需要有谁来控制呢?一定要有控制器,这些控制器,我们 ...

  3. Luogu 2573 [SCOI2012]滑雪

    BZOJ 2753 首先可以按照题目要求的把所有的有向边建出来,然后进去广搜就可以求出第一问的解,然后考虑如何求解第二问,我们把所有搜到的边按照到达的点的高度位第一关键字,边的长度为第二关键字排序之后 ...

  4. Django框架 之 跨域请求伪造

    Django框架 之 跨域请求伪造 浏览目录 同源策略与Jsonp 同源策略 Jsonp jQuery对JSONP的实现 CORS 简介 两种请求 同源策略与Jsonp 同源策略 同源策略(Same ...

  5. EF 常见语句以及sql语句简单 后续继续添加

    1.注意级联删除的时候数据库的外键要设置为开启级联删除,(数据库里sqlserver的外键修改的时候,可以看到级联删除和级联更新) using System;using System.Collecti ...

  6. 常用eclipse插件

     http://dist.springsource.com/release/TOOLS/update/e4.4/ http://propedit.sourceforge.jp/eclipse/upda ...

  7. 编写高质量代码改善C#程序的157个建议——建议35:使用default为泛型类型变量指定初始值

    建议35:使用default为泛型类型变量指定初始值 有些算法,比如泛型集合List<T>的Find算法,所查找的对象可能会是值类型,也有可能是引用类型.在这种算法内部,我们常常会为这些值 ...

  8. Linux下为Eclipse安装hadoop插件

    前提条件:在Linux系统中已经安装好了jdk和hadoop 本文的安装环境:1.arch Linux 2. hadoop1.0.1本地伪分布模式安装  3. Eclipse 4.5 1. 下载Ecl ...

  9. 打包发布到NPM并通过CDN访问

    本文主要讲述基于webpack编写js包文件后上传到npm,并通过cdn进行访问. 创建项目 在自己新建的文件夹下执行如下代码: npm init name: (mtmap) version: (1. ...

  10. 微信支付接入的总结 —— NATIVE & MWEB & JSAPI

    这段时间工作中需要对接微信支付,而且要多个端同时进行接入,web端,手机浏览器,微信浏览器,所以研究了下.不同场景选择合适的接入方式是必须的.https://pay.weixin.qq.com/wik ...