zoukankan      html  css  js  c++  java
  • IE和FF的事件绑定探讨

    事件的绑定:大概分为如下5种
      1、绑定到元素,这也是比较常见的一种比如:
    <input type="button" onclick="doEventThing(event)">
    ,这样我们就把doEventThing绑定到了该button对象上,点击此按钮事件就被触发。
      2、绑定事件到对象:这也是比较常见的一种,特别是在IE4+下面:
    document.getElementById("divid").onclick = doEventThing;
      3、使用<script for>进行事件的绑定,这只在IE4+下有用(为buttong1绑定事件,逻辑在script块中书写event来指定怎么触发事件):

    <script event="onclick" for="button1">
     // script statements here
    </script>

       4、使用 IE5/Windows 的 attachEvent() 方法     
       5、使用 W3C DOM 的 addEventListener() 方法
    addEventListener("eventType",listenerReference,captureFlag);
      第三个参数则是一个 Boolean 值,指明该结点是否以DOM中所谓的捕捉模式来侦听事件。对于一个典型的事件侦听器来说,第三个参数应该为false(假)。
      prototype在绑定事件的时候兼容IE和W3C的时候做的处理如下:

    _observeAndCache: function(element, name, observer, useCapture) {     
       if (!this.observers) this.observers = [];     
       if (element.addEventListener) {//W3C DOM     
         this.observers.push([element, name, observer, useCapture]);     
         element.addEventListener(name, observer, useCapture);     
       } else if (element.attachEvent) {//IE5/Windows     
         this.observers.push([element, name, observer, useCapture]);     
         element.attachEvent(’on’ + name, observer);     
       }     
    }

    撇开this.observers.pust([element,name,observer,useCapture])不谈,我们对4、5所说的事件绑定就很清楚了。我们知道prototype的此方法的useCapture在IE下没有作用,只对W3C的事件处理机制起作用


  • 相关阅读:
    golang的缓冲channel简单使用
    golang协程同步的几种方法
    红黑树原理详解及golang实现
    go路由httprouter中的压缩字典树算法图解及c++实现
    golang编译源代码和交叉编译方法
    cmake使用笔记
    如何用redis设计数据库初探
    muduo学习笔记(六) 多线程的TcpServer
    利用 Blob 处理 node 层返回的二进制文件流字符串并下载文件
    数据量庞大的分页穿梭框实现
  • 原文地址:https://www.cnblogs.com/quanhai/p/1728467.html
Copyright © 2011-2022 走看看