在网上看到一段程序里面的事件绑定程序是这样的,不明白对IE的绑定程序为什么搞的这么复杂?直接用oElement.attachEvent("on" + sEvent,fnHandler)又出错了,高手指教啊,这样写的用意是什么,实在看不明白addHandler: function (oElement, sEvent, fnHandler) {
oElement.addEventListener ? oElement.addEventListener(sEvent, fnHandler, false) : 
       (oElement["_" + sEvent + fnHandler] = fnHandler,oElement[sEvent + fnHandler] = function () {oElement["_" + sEvent + fnHandler]()}, oElement.attachEvent("on" + sEvent, oElement[sEvent + fnHandler]))
}

解决方案 »

  1.   

    因为IE与FF绑定事件的方法是不同的,
    IE:attachEvent
    FF:addEventListener楼主那段代码就是判断使用的浏览器是否支持addEventListener方法,不支持就用attachEvent
      

  2.   

    这个我知道啊,但不知道为IE绑定事件时为什么这么写:
    oElement["_" + sEvent + fnHandler] = fnHandler;
    oElement[sEvent + fnHandler] = function () {oElement["_" + sEvent + fnHandler]()};oElement.attachEvent("on" + sEvent, oElement[sEvent + fnHandler]);
    我觉得写成oElement.attachEvent("on" + sEvent,fnHandler)就可以了,但在程序中又出错了,不知道这两个写法有什么区别吗