现有的事件管理都挂放在HTMLElement上的,即每个element有个events属性,该属性可以当成个hash对象。里面存储这该element的所有事件及事件handler。比如给element添加了click/mouseover/mouseout 三个事件,响应函数分别是f1/f2/f3。events的结构如下

事件模块的演变(7)

每一个events['click'] 是一个数组,即存放多个handler。给element的click事件添加3个事件handler,其结构如下

事件模块的演变(7)


往HTMLElement上添加了一个对象,该对象中存放了许多事件handler,可能会存在内存泄露的问题尤其在IE6中。这篇将修改下,HTMLElenent上不再挂events属性而是使用guid。即往HTMLELement上添加一个唯一数字,改数字作为对象evtHash的key以存放事件handler。添加修改后的结构如下

事件模块的演变(7)


event-v0.4.js

相关文章:

  • 2021-11-05
  • 2021-09-09
  • 2022-12-23
  • 2021-08-13
  • 2022-02-05
  • 2021-10-08
猜你喜欢
  • 2021-08-23
  • 2021-10-04
  • 2022-02-11
  • 2021-10-06
  • 2022-03-02
  • 2021-11-23
  • 2021-07-21
相关资源
相似解决方案