由于事件的绑定实际上是把对应的处理函数添加到cache中, 再addEventListener或attachEvent绑定jQuery.event.dispatch.apply( eventHandle.elem, arguments ).
所以删除就有两种情况 一是把目标事件从缓存的处理列表里删掉, 二是彻底解除绑定
以click事件为例:
如果dom元素上有多个绑定好的click事件,
解除绑定有两种情况, 1是删掉缓存上事件队列里的其中一个,2是事件队列全都删完了 这时才需要removeEventListener或detachEvent
调用过程还是fn.off ==> jQuery.event.remove ==> 第二种情况jQuery.removeEvent
一:解绑的几种用法
|
|
二:对外接口
|
|
三:内部实现
|
|
四: 必要时解除事件的绑定
|
|