来自:http://www.cnblogs.com/wkylin/archive/2011/10/09/2203161.html

 

事件监听addEventListener----attachEvent
第一:简单的通用方法(IE && FF)

window.onload = function(){
   var oDiv = document.getElementById("J_myDiv"); //找到对象
   oDiv.onclick = function(){                                   //设置事件监听函数
        alert("click");
   }
}
缺点:1.添加单一事件

         2.不能删除事件

第二:IE中监听函数

var oDiv;

function fnClick(){
    alert("click me");
    oDiv.detachEvent("onclick",fnClick);//删除监听函数
}

window.onload = function(){
   oDiv = document.getElementById("J_myDiv");//找到对象
   oDiv.attachEvent("onclick",fnClick);       //添加监听函数
}

第三:标准DOM监听函数

var oDiv;

function fnClick1(){
   alert("click1");
   // oDiv.removeEventListener("click",fnClick2,false); //删除监听函数2
}

function fnClick2(){
   alert("click2");
}

window.onload = function(){

     oDiv = document.getElementById("J_myDiv"); //找到对象
     oDiv.addEventListener("click",fnClick1,false);   //添加监听函数1
     oDiv.addEventListener("click",fnClick2,false);   //添加监听函数2

}

第四:从js实例来看事件监听 参看:http://imethan.com/?p=208

第五:从实例来看JS的事件监听学习笔记(事件监听绑定、ff/IE不同的处理机制兼容总结)参看:http://hi.baidu.com/dou917/blog/item/40219f37e6e3deee1b4cff67.html

第六:代码总结

<script language="javascript">
//Javascript 事件演示
window.onload = function(){
    var hideBox = function(event){
        document.getElementById('status_show').style.display = 'none';
        document.getElementById('status_hide').style.display = 'block';
    };
    var showBox = function(event){
        document.getElementById('status_show').style.display = 'block';
        document.getElementById('status_hide').style.display = 'none';
        stopEvent(event);
    };
    var stopEvent = function(event){
        e = event || window.event;
        if(e.stopPropagation){
            e.stopPropagation();
        }else {
            e.cancelBubble = true;
        }
    };
    if(document.addEventListener){
        document.addEventListener('click', hideBox, false);
        document.getElementById('status_hide').addEventListener('click', showBox, false);
        document.getElementById('status_show').addEventListener('click', stopEvent, false);
    }else {
        //For IE
        document.attachEvent('onclick', hideBox);
        document.getElementById('status_hide').attachEvent('onclick', showBox);
        document.getElementById('status_show').attachEvent('onclick', stopEvent, showBox);
    }
};
</script>

分享一下事件监听addEventListener----attachEvent的用法的更多相关文章

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

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

  2. 事件监听addEventListener()和removeEventListener() ---------1

    一直想写一个原生事件监听的记录,方便以后看,不愿意写主要是事件监听的单词太长,记起来好难记每次都要查,这次把知道的写完了,来这里查好了,以后要是理解的更透彻了,就再补全好了 首先,DOM0级事件和DO ...

  3. JS事件监听 JS:attachEvent和addEventListener 使用方法

    attachEvent与addEventListener区别适应的浏览器版本不同,同时在使用的过程中要注意attachEvent方法          按钮onclickaddEventListene ...

  4. (转载)JS事件监听 JS:attachEvent和addEventListener使用方法

    (转载)http://www.chhua.com/web-note146 attachEvent和addEventListener使用方法 Js代码 <html> <head> ...

  5. [JS]笔记12之事件机制--事件冒泡和捕获--事件监听--阻止事件传播

    -->事件冒泡和捕获-->事件监听-->阻止事件传播 一.事件冒泡和捕获 1.概念:当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,点击子元素时,父元素的oncl ...

  6. html屏幕旋转事件监听

    近期做微信服务号开发,在做图片展示的时候需要横竖屏的检测实现图片大小不同的展示. 添加屏幕旋转事件侦听,可随时发现屏幕旋转状态(左旋.右旋还是没旋). 摘自:http://bbs.phonegap10 ...

  7. [No00006A]Js的addEventListener()及attachEvent()区别分析【js中的事件监听】

    1.添加时间监听: Chrom中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target ...

  8. [转]addEventListener() 方法,事件监听

    转载  白杨-M  http://www.cnblogs.com/baiyangyuanzi/p/6627401.html addEventListener() 方法,事件监听 你可以使用 remov ...

  9. addEventListener() 方法,事件监听(去哪儿网用到过)

    addEventListener() 方法,事件监听 你可以使用 removeEventListener() 方法来移除事件的监听. 语法 element.addEventListener(event ...

随机推荐

  1. ItemTouchHelper(实现RecyclerView上添加拖动排序与滑动删除的所有事情)

    简单介绍: ItemTouchHelper是一个强大的工具,它处理好了关于在RecyclerView上添加拖动排序与滑动删除的所有事情.它是RecyclerView.ItemDecoration的子类 ...

  2. exsi从磁盘中加载虚拟机

    e

  3. Example of working with a dump.

    Let's say that you are looking at a crash dump, so following the first command from this page you do ...

  4. SSD-tensorflow-3 重新训练模型(vgg16)

    一.修改pascalvoc_2007.py 生成自己的tfrecord文件后,修改训练数据shape——打开datasets文件夹中的pascalvoc_2007.py文件,根据自己训练数据修改:NU ...

  5. ML words

    samples:样本 multi-dimensional entry / multivariate data:多属性记录 features:特征,属性 supervised learning:监督学习 ...

  6. Linux/Mac vi命令详解

    刚开始学着用Linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

  7. NodeJS学习笔记 进阶 (11)Nodejs 进阶:调试日志打印:debug模块

    个人总结:读完这篇文章需要5分钟,讲解了debug模块的使用 摘选自网络 前言 在node程序开发中时,经常需要打印调试日志.用的比较多的是debug模块,比如express框架中就用到了.下文简单举 ...

  8. Git强制覆盖master分支

    在开发中,通常会保持两个分支master分支和develop分支,但是如果因为develop上面迭代太多而没有及时维护master,最后想丢弃master而直接将测试确认过的develop强推到mas ...

  9. BitSet的使用

    有些程序须要处理二进制有序集,标准库提供了bitset 类型,其实,bitset 是一个二进制容器.容器中每个元素都是一位二进制码,或为 0,或为 1. bitset除了能够訪问指定下标的bit位以外 ...

  10. net.sf.json Maven依赖配置

    转自:https://blog.csdn.net/qq_36698956/article/details/80772984 今天搭框架开始实现前台的json了,于是逐个找适合的框架,发现要实现json ...