博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery源码解析 事件
阅读量:4310 次
发布时间:2019-06-06

本文共 852 字,大约阅读时间需要 2 分钟。

核心方法 delegate, live, bind

现在都转向使用on函数,live在1.9直接删除

最后都使用 jQuery.event.add( this, types, fn, data, selector ); this是原生的HTMLElement

重要的全局属性

jQuery.cache

jQuery.guid 

 

jQuery.cache中的存储

每一个jQuery中的元素添加的事件,都会在jQuery.cache 中存储为一个对象,id值对应为elem[jQuery.expando];

{1: events:Object, handle:function}

 

1 events 

获取$.data(el, "events");

处理函数都存储在这里,对不同的事件类型,有不同数组存储,描述的不好TODO

2 handle 处理函数

elem(prop) 存储的el元素

事件添加的处理函数

elemData.handle = eventHandle = function( e ) {	// Discard the second event of a jQuery.event.trigger() and	// when an event is called after a page has unloaded	return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?		jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :		undefined;};

底层

用addEventListener, attachEvent 添加的是 上面cache对象存储的handle处理函数

转载于:https://www.cnblogs.com/zzu-han/archive/2013/02/21/2920276.html

你可能感兴趣的文章
MVC AJAX Pager Helper
查看>>
P1004 方格取数-洛谷luogu-dp动态规划
查看>>
sql存储过程
查看>>
sql注入100种姿势过waf(一):waf 了解
查看>>
Vulnhub靶场渗透练习(三) bulldog
查看>>
软件工程展望
查看>>
AFNetworking实现程序重新启动时的断点续传
查看>>
Java案例整理
查看>>
【python3基础】python3 神坑笔记
查看>>
小椛椛的板子们2
查看>>
元类的三大核心:__new__,__init__和__call__
查看>>
!!在JS中代表什么
查看>>
Oracle 中的sql函数以及分页
查看>>
Android 发送邮件时遭遇 : no object DCH for MIME type multipart/mixed
查看>>
Android 动画学习小结
查看>>
GizpAttribute
查看>>
Redis安装教程
查看>>
centos yum install redis
查看>>
DBUtils数据库连接池
查看>>
underscore.js _.each[Collections]
查看>>