说到 attachEvent 与 addEventListener 的事件必然会提到  浏览器的判断,因为attachEvent只适用于于IE

先来看看常用的浏览器的判断

//判断浏览器类型
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox"; //火狐
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari"; //苹果
}
if(isChrome=navigator.userAgent.indexOf("Chrome")>0) {
return "Chrome"; //谷歌
}

接下来就有了 监听事件

if (navigator.userAgent.indexOf("MSIE") > 0) {
              document.getElementById('txtABC').attachEvent("onpropertychange", txtChange);
          }
    else if (navigator.userAgent.indexOf("Firefox") > 0) {
         document.getElementById('txtABC').addEventListener("input", txtChange, false);

}

一起来看看addEventListener 的参数

  1:事件名称:click, blur 等事件名称,注意事件名不要带"on"。 在IE 下 才会使用 onclick,也就是 使用attachEvent 事件监听的时候才用加On。

2: 绑定的函数 txtChange 不要加括号。

3: 布尔值,表示事件的响应顺序。当为false时为冒泡获取(由里向外),true时 方式(由外向里)。

当然

document.getElementById('txtABC').attachEvent("onpropertychange", txtChange);

方式 也可以使用jquery 来绑定事件 效果是一样的。

$("#txtArticleName").bind('propertychange', function() {
        txChange();
  });

这时候就会有一个问题出现,使用多个浏览器 就要写多个判断。

那么我们就换一种思路。使用键盘监听:

////////  给txtArticleName绑定键盘事件
            $("#txtArticleName").bind("keydown", function() {
                    txtChange();
                }

});

大部分浏览器都支持,keydown事件,所以这么写可以兼容大部分浏览器.这样 代码,看起来更简洁。

attachEvent 与 addEventListener 的监听的更多相关文章

  1. JavaScript addEventListener()事件监听方法

    addEventListener()方法将事件处理程序附加到指定的元素. addEventListener()方法将事件处理程序附加到元素,而不覆盖现有的事件处理程序. 您可以向一个元素添加许多事件处 ...

  2. addEventListener() 事件监听

    addEventListener() 用于向指定元素添加事件. 可以向一个元素添加多次事件或者多次不同事件,后面的事件是不会覆盖前面的. 语法: element.addEventListener(ev ...

  3. window.addEventListener('error')监听页面是否更新版本

    因本司更新迭代的速度很快,有时候更改一个BUG就要马上更新版本,就会引起用户在应用当中,页面点击无反应,其实是打包的js和css的包名称更改,找不到以前的包的缘故.我现在用一个小方法,判断js或css ...

  4. js事件监听-addEventListener (w3c标准) 和 attachEvent(ie)

    研究了一个小时,没看懂这两个属性 window.onload = function(){ var oDiv = document.getElementById("J_myDiv") ...

  5. JS 中的事件绑定、事件监听、事件委托

    事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有 ...

  6. JS 事件绑定,监听,委托(代理)

    我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代理)等.这些名词是什么意思呢,有什么作用呢? 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元 ...

  7. JS原生 未来元素监听写法

    绑定事件的另一种方法是用 addEventListener() 或 attachEvent() 来绑定事件监听函数. addEventListener()函数语法:elementObject.addE ...

  8. 事件监听addEventListener----attachEvent

    第一:简单的通用方法(IE && FF) window.onload = function(){ var oDiv = document.getElementById("J_ ...

  9. JS 事件绑定、事件监听、事件委托详细介绍

    原:http://www.jb51.net/article/93752.htm 在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代 ...

随机推荐

  1. Linux Change The I/O Scheduler For A Hard Disk

    ow do I change the I/O scheduler for a particular hard disk without rebooting my Linux server system ...

  2. 字节序(byte order)和位序(bit order)

    字节序(byte order)和位序(bit order)  在网络编程中经常会提到网络字节序和主机序,也就是说当一个对象由多个字节组成的时候需要注意对象的多个字节在内存中的顺序.  以前我也基本只了 ...

  3. 【转】Jmeter应用评估

    Jmeter应用评估 发布时间: 2008-9-03 16:17    作者: 未知    来源: 网络转载 字体:  小  中  大  | 上一篇 下一篇 | 打印  | 我要投稿  | 推荐标签: ...

  4. Pycharm快速复制当前行到下一行Ctrl+D

    Pycharm快速复制当前行到下一行Ctrl+D

  5. Rest之路 - 第一个Rest程序

    在 Eclipse 里新建一个 Dynamic project 将 Jersey 的 jar 包,拷贝到 WebContent -> WEB-INF -> lib 文件夹 Add jars ...

  6. oracle删除多个分区表

    declare v_date date; v_part_name varchar(); begin v_date := date'2015-2-4'; while v_date >= date' ...

  7. springboot成神之——ioc容器(依赖注入)

    springboot成神之--ioc容器(依赖注入) spring的ioc功能 文件目录结构 lang Chinese English GreetingService MyRepository MyC ...

  8. left join的多重串联与groupby

    有三张表或组合查询,f1,f2,f3,其中,f1分别与f2,f3是一对多关系,f1一条记录可能对应f2或f3中0条或多条记录 要创建一个查询,以f1为基准,即f1中有多少条记录,结果也就返回对应数量的 ...

  9. leetcode832

    vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) { vector& ...

  10. iTunes 安装ipa文件到iPhone上

    iTunes 安装ipa文件到iPhone上 把ipa文件拖到itunes里面. ipa(iPhoneApplication) 菜单 File>Add File to Library>Se ...