温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

jQuery学习---------认识事件处理

发布时间:2020-06-05 08:08:10 来源:网络 阅读:283 作者:xiaojing___ 栏目:web开发

3种事件模型:

   原始事件模型

   DOM事件模型

   IE事件模型


原始事件模型(0级事件模型)

    1、事件处理程序被定义为函数实例,然后绑定到DOM元素事件对象上,实现事件的注册。


       例子:var btn = document.getElementsByTagName("input")[0];

             btn.onclick = function(){

               函数体....

             }

    2、也可以把特定的事件处理函数的函数体直接赋给DOM元素的事件属性


       例子:<input type="button" onclick="alert('hello')"

    

    0级事件模型的优缺点:

       优点:使用方便

       缺点:元素属性被用来存储事件处理函数的引用,

             所以每个元素的每个事件只能注册一个事件处理程序。


DOM事件模型:

    1、注册事件

       addEventListener()方法:

         语法:addEventListener("type",function,useCapture)

         参数:type:是要绑定的事件类型,但是这里没有“on”前缀。

                     如onclick事件应写作:click

               function:事件处理函数,自带一个默认参数,引用event对象

               usrCapture:是一个布尔值,

                           为true时:在事件传播的捕捉阶段触发响应;

                           为false时:在事件传播的冒泡阶段触发响应

     

        例子:var btn = document.getElementsByTagName("input")[0];

      btn.addEventListener("click",function(){

     btn.value = event.type;

          },true)

    

     2、事件传播

        DOM 2级事件模型中,一旦事件被触发,事件流首先从DOM树的顶部(文档节点#document)向下传播,直到目标节点,然后再从目标节点向上传播到DOM树顶。

        从上到下的过程被称为捕获阶段,

        从下到上的过程被称为冒泡阶段。

        终止事件流的冒泡:stopPropagegation()方法


        例子:var btn = document.getElementsByTagName("input")[0];

        do{

  btn.addEventListener("click",function(){

  div.innerHTML += " "+this.nodeName+" ";

  },true)

  btn = btn.parentNode;

  }while(btn);

             

             上例中,第三个参数设置为true,注册的是捕获型事件。

                     所以点击按钮,事件触发顺序为:#document->html->body->button

               如果,第三个参数设置为false,注册的是冒泡型事件。

                     所以点击按钮,事件的触发顺序为:button->body->html->#document


    3、销毁事件

           removeEventListener()方法:

           注意:removeEventListener()和addEventListener()的第三个参数要保持一致

                 否则销毁操作是无效的。


IE事件模型:

    1、注册事件:

           attachEvent()方法:

              语法:attachEvent("type",function)

              参数:type:元素事件类型,如:onclick

                    function:事件处理函数

       注意:IE时间模型中,事件处理函数中的this指针总是指向window对象,

             0型事件模型中,事件处理函数中的this指针总是指向当前注册事件的对象

   2、事件传播:

          IE事件模型:事件流总是从目标对象向上传递知道树顶,即冒泡型。

          终止事件流的冒泡:设置event对象的cancelBubble属性


   3、注销事件:

          detachEvent()方法


事件处理机制:

    Event对象:

       当触发事件时,浏览器会自动创建一个event对象,

                     event对象实际上是Event类型的实例,

                     默认状态下他会被作为参数传递给事件处理函数


       实现访问的兼容性:

           var event = event||window.event;


       注意:IE和DOM标准浏览器返回的event对象的属性和方法存在差异!!!


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI