zoukankan      html  css  js  c++  java
  • attachEvent传递给其handler的一个默认参数

    以下文章是转 :http://www.cnitblog.com/yemoo/archive/2008/01/02/38384.html
    attachEvent是IE专有的事件捕获函数,偶也用过了很多次,传入事件名及捕获句柄(即事件处理函数)即可。

    如document.attachEvent("onclick",function(){alert('click')});代表点击页面任意位置都会弹出消息“click”。

    对于第二个参数function,确实attachEvent会默认传递过去一个参数,不知其他人有没有注意到过,反正偶是第一次发现。

    不信你就试试以下代码(单击页面任意位置):

    <script type="text/javascript">
      
    <!--
      
    function test(){
        alert(argument.length)
        alert(arguments[
    0]);
      }
      document.attachEvent(
    "onclick",test);
      
    //-->
    </script>


    执行上面的函数会分别弹出1和object。

    那这个object是什么呢?可能很多人都会猜到了,就是event对象。该event对象包含了当前触发事件的所有信息。

    执行以下测试代码(单击页面任意位置):

    <script type="text/javascript">
      
    <!--
      
    function test(){
        
    var info='';
        
    for(var i in arguments[0])
          info
    +=(i+"\t:"+arguments[0][i]+"\n<br>");
        alert(info);
      }
      document.attachEvent(
    "onclick",test);
      
    //-->
      </script>


    发现弹出了以下信息(根据你点击位置的不同显示信息会有不同):

    recordset :null
    type :click
    fromElement :null
    toElement :null
    altLeft :false
    keyCode :0
    repeat :false
    reason :0
    behaviorCookie :0
    contentOverflow :false
    behaviorPart :0
    dataTransfer :null
    ctrlKey :false
    shiftLeft :false
    dataFld :
    returnValue :undefined
    qualifier :
    wheelDelta :0
    bookmarks :null
    button :0
    srcFilter :null
    nextPage :
    cancelBubble :false
    x :328
    y :482
    srcElement :[object]
    screenX :490
    screenY :572
    srcUrn :
    boundElements :[object]
    clientX :328
    clientY :482
    propertyName :
    shiftKey :false
    ctrlLeft :false
    offsetX :326
    offsetY :480
    altKey :false



    这些信息可能有很多对我们都是有用的。但实际上个人感觉这个参数在IE中用处并不大,因为IE中Event是一个全局对象,可以直接使用event获取需要的信息。

    转载请注明出处[http://samlin.cnblogs.com/

    欢迎关注本人公众号:

    作者赞赏
  • 相关阅读:
    HDU3336 Count the string —— KMP next数组
    CodeForces
    51Nod 1627 瞬间移动 —— 组合数学
    51Nod 1158 全是1的最大子矩阵 —— 预处理 + 暴力枚举 or 单调栈
    51Nod 1225 余数之和 —— 分区枚举
    51Nod 1084 矩阵取数问题 V2 —— 最小费用最大流 or 多线程DP
    51Nod 机器人走方格 V3 —— 卡特兰数、Lucas定理
    51Nod XOR key —— 区间最大异或值 可持久化字典树
    HDU4825 Xor Sum —— Trie树
    51Nod 1515 明辨是非 —— 并查集 + 启发式合并
  • 原文地址:https://www.cnblogs.com/samlin/p/1034590.html
Copyright © 2011-2022 走看看