• 话话js中的事件监听


    1、事件监听的概念:

    JavaScript使我们有能力创建动态页面,网页中的每一个元素都可以产生某些触发JavaScript函数的事件。我们可以认为事件一种行为或一种方法。

    事件分为DOM 0级事件和Dom 2级事件,DOM2级事件也叫做事件监听。DOM0级事件的缺点是如果事件相同,后者的事件会覆盖前者的事件,DOM2级事件不会覆盖,它可以为针对当前对象的同一个事件,添加多个不同的监听函数。这些函数按照添加顺序触发,即先添加先触发。还能够指定在哪个阶段(捕获阶段还是冒泡阶段)触发监听函数。

    2、事件流:

    事件流主要分为冒泡型事件和捕获型事件。IE浏览器目前只支持冒泡型事件,而支持标准DOM的浏览器比如火狐、Chrome等两者都支持。

    捕获过程:window------> document ------->body ---------> div

    冒泡过程:div-------->body--------->document ----------> window

    3、主流浏览器中用的监听事件的方法:

     addEventListener() 
            参数1:事件类型  不需要加on   
            参数2:回调函数    
            参数3:布尔值  true代表捕获   false代表冒泡
     
    下面是一个例子。

     上面代码中,button节点的addEventListener方法绑定click事件的监听函数hello,该函数只在冒泡阶段触发。

    removeEventListener()    用来移除addEventListener方法添加的事件监听函数
     
     
     
    4.IE用的监听事件的方法:
     attachEvent()
            参数1:事件类型  需要加on
            参数2:回调函数
     
    举个例子:
       解绑事件方法:detachEvent()
    这里需注意:解绑的事件类型及事件监听函数的名称跟绑定的须互相对应,才能解绑成功。
     
    5.this的指向
    监听函数内部的this指向触发事件的那个元素节点。
       
    这三种写法点击按钮以后都是输出btn
     
    6、事件代理
    由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件。这种方法叫做事件的代理。
    举个案例:
      
     
    上面代码中,click事件的监听函数定义在oList节点,但是实际上,它处理的是子节点<input>click事件。这样做的好处是,只要定义一个监听函数,就能处理多个子节点的事件,而不用在每个<input>节点上定义监听函数。而且以后再添加子节点,监听函数依然有效。
     
    7、如果希望事件到某个节点为止,不再传播,可以使用事件对象的stopPropagation方法。
     
     
    上面代码中,stopPropagation方法分别在捕获阶段和冒泡阶段,阻止了事件的传播。
  • 相关阅读:
    去年课程设计的作品
    终于结束了期末考试
    记在园子里安家
    ASP.NET中实现无刷新级联
    ASP.NET中利用JQuery AJAX修改用户密码
    The LogStructured MergeTree(译)(转载)
    我常用的Latex中文报告模板(一)
    LRU算法的简单实现( C语言 + uthash包)
    epoll 使用详解
    转载系列之一:浅析Hadoop文件格式
  • 原文地址:https://www.cnblogs.com/sophia0102/p/9059627.html
Copyright © 2020-2023  润新知