绑定函数不解

rarny 2011-11-07 06:10:36
在网上看到一段程序里面的事件绑定程序是这样的,不明白对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]))
}
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangws 2011-11-08
  • 打赏
  • 举报
回复
因为IE与FF绑定事件的方法是不同的,
IE:attachEvent
FF:addEventListener

楼主那段代码就是判断使用的浏览器是否支持addEventListener方法,不支持就用attachEvent
rarny 2011-11-08
  • 打赏
  • 举报
回复
这个我知道啊,但不知道为IE绑定事件时为什么这么写:
oElement["_" + sEvent + fnHandler] = fnHandler;
oElement[sEvent + fnHandler] = function () {oElement["_" + sEvent + fnHandler]()};oElement.attachEvent("on" + sEvent, oElement[sEvent + fnHandler]);
我觉得写成oElement.attachEvent("on" + sEvent,fnHandler)就可以了,但在程序中又出错了,不知道这两个写法有什么区别吗
rarny 2011-11-07
  • 打赏
  • 举报
回复
大家帮小弟一下啊

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧