[原创] jQuery源码分析-10事件处理-Event-事件绑定与删除-bind/unbind+live/die+delegat/undelegate
?
??
1 楼 坏小子小滨 2011-10-19 持续学习中,感谢楼主 2 楼 魏祖清 2011-11-09 写的的确好好啊,看了很容易就懂了,不过看到现在,有一个问题不明白就是jquery事件是全部放在$.cache[id][$.expend]中的话,那么浏览器解析器是什么识别这些事件,比如我们单击某个html元素什么懂得触发这些事件 3 楼 nuysoft 2011-11-09 魏祖清 写道写的的确好好啊,看了很容易就懂了,不过看到现在,有一个问题不明白就是jquery事件是全部放在$.cache[id][$.expend]中的话,那么浏览器解析器是什么识别这些事件,比如我们单击某个html元素什么懂得触发这些事件
第67行 2. 如果是第一次在DOM元素上绑定该类型事件句柄,在DOM元素上绑定jQuery.event.handle,作为统一的事件响应入口
jQuery.event.handle,执行句柄,所有的事件,无论是bind、live、delegate,最后都会调用handle来执行事件处理函数,大致执行过程分为三步:
1. 封装原始事件对象,生成jQuery.Event对象,修正target、relatedTarget、pageX、pageY、which(键盘按键+鼠标按键)、metaKey属性
2. 根据封装后的jQuery.Event.type从$.cache中取出对应事件类型的事件句柄数组
3. 执行这个数组 var ret = handleObj.handler.apply( this, args );
大致思路就是这样,细节可以读读jQuery.event.handle的源码
4 楼 晨曦的朝阳 2011-11-21 事件绑定内容真够多的,可不容易看呀。之前一下子去看ready事件,完全陷进去了,希望看了LZ前边内容后去看下节内容不会像以前一样,LZ继续加油! 5 楼 mvpierce34 2011-12-12 仔细看过楼主之前写的关于jQuery Cache 的内容,思路清晰,注释很清楚,可是看完event,感觉有点乱,尤其是关于jQuery event对象中方法的解释和其中的数据绑定内容。可能是我太浅了。但是我觉得好像有几处写得不是那么严谨....比如elemData中的events和handler对象的描述是否有误..... 6 楼 nuysoft 2011-12-12 mvpierce34 写道仔细看过楼主之前写的关于jQuery Cache 的内容,思路清晰,注释很清楚,可是看完event,感觉有点乱,尤其是关于jQuery event对象中方法的解释和其中的数据绑定内容。可能是我太浅了。但是我觉得好像有几处写得不是那么严谨....比如elemData中的events和handler对象的描述是否有误.....
看的很仔细啊,最近有点小忙,稍后会自己检查下你说问题,thx