为元素绑定事件(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. Logstash安装和设置(图文详解)(多节点的ELK集群安装在一个节点就好)

    前提 Elasticsearch-2.4.3的下载(图文详解) Elasticsearch-2.4.3的单节点安装(多种方式图文详解) Elasticsearch-2.4.3的3节点安装(多种方式图文 ...

  2. 各大IT/IC公司offer比较&nbsp;

    1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...

  3. python文件处理-读、写

    Python中文件处理的操作包括读.写.修改,今天我们一起来先学习下读和写操作. 一.文件的读操作 例一: #文件读操作 f = open(file="first_blog.txt" ...

  4. Tags and Layers

    [Tags and Layers] 1.tags and layers 配置面板."Edit" -> "Project Settings" -> & ...

  5. Leetcode:Longest Palindromic Substring分析和实现

    问题大意是在给定字符串中查找最长的回文子串,所谓的回文就是依据中间位置对称的字符串,比如abba,aba都是回文. 这个问题初一看,非常简单,但是会很快发现那些简单的思路都会带来O(n^3)级别的时间 ...

  6. opencv3读取视频并保存为图片

    #include <iostream> #include <vector> #include <opencv2/opencv.hpp> using namespac ...

  7. mybatis 框架 的应用之四(一对一 与 一对多)

    lf-driver=com.mysql.jdbc.Driver lf-url=jdbc:mysql://localhost:3306/test?allowMultiQueries=true&u ...

  8. 在Asp.Net中使用amChart统计图

    怎么在自己的ASP.NET页面插入可动态更新的数据统计图呢?网上的资源倒是不少(Fusioncharts.amCharts……),在这些资源中有一个比较好用:amChart,这个工具很炫,还能与用户交 ...

  9. c# 半角转换为全角 判断是否是全角

    #region 半角转换为全角 /// <summary> /// 半角转换为全角 ////转全角的函数(SBC case) ///任意字符串 ///全角空格为12288,半角空格为32 ...

  10. C#中return的两个作用

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...