阅读jQuery源代码带给我们的18个惊喜
相信大家都非常熟悉jQuery类库,绝对最受欢迎的JS框架,如果你也有兴趣阅读v源代码的话,或者你也会有同感。
以下便是阅读jQuery源代码后挖掘的18条令人惊奇的信息:
1. sizzle的大小
Sizzle是用来帮助jQuery实现DOM查询操作的引擎,可能你不知道它占用了jQuery源代码的22%。
其次最大的特性是$.ajax,占用了jQuery源代码中的8%。
2. $.grep
这个方法类似underscore中的_.filter方法,使用两个参数,一个数组变量和一个回调函数,返回通过回调函数为true的元素。
3. 冒泡提醒
jQuery特意的阻止了一个事件类型的气泡。这就是load事件,jQuery传递了一个特别的noBubble:true来阻止事件冒泡到window对象(这可能导致错误的匹配了window.load事件)
4. 缺省的动画速度
jQuery通过快速的变化元素样式属性来实现动画。每一个变化被叫做一个"滴答"。缺省的动画速度是每13毫秒滴答一次,你可以通过重写jQuery.fx.interval来修改缺省的值
5. $.fn.addClass接受一个方法
我们通常提供$.fn.addClass一个class定义名称。但是它同样可以支持方法。你只需要方法返回一个空格分隔的字符串class定义即可。这个方法甚至接受元素的索引为参数,这样我们可以构建自己的只能class名。
6. $.fn.removeClass同样支持
这个方法也可以支持接受方法为参数,和$.fn.addClass一样。
7. :empty伪选择器
这个伪选择器可以匹配所有没有子元素的元素
8. :lt和:gt伪选择器
这些伪选择器基于索引来匹配。例如,$('div:gt(2)')将会返回所有的div除了前3个元素(基于0索引)。如果你提供一个负值,那么就从末尾算起。
9. $(document.ready()使用了promise
jQuery内部使用了jQuery的deferred来保证DOM完整被加载
10. $.type
大家可能都熟悉typeof来判断数据类型,但是你是否知道jQuery提供了.type()方法?这个方法比浏览器本地版本更智能。
例如,typeof(new Number(3))返回了“object”,然而$.type(new Number(3))放回数字。
更确切的说$.type告诉你返回对象的值类型
。。。。。
。。。。。
相关文章
- [转] 通过jQuery Ajax使用FormData对象上传文件
- jQuery - checkbox enable/disable
- jquery $.proxy使用 Jquery实现ready()的源码
- jquery中 $ 和 jQuery 及 $() 的区别
- 页面有多个相同的id或者class时,绑定jquery事件无效,解决方案
- jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.8 Sizzle.selectors.relative
- JQuery入门(3)
- jquery script
- 使用jQuery异步传递含复杂属性及集合属性的Model到控制器方法
- jQuery可拖拽排序列表jquery-sortable-lists
- jQuery 编辑div内容
- 《jQuery EasyUI开发指南》——导读
- jquery.validate.js校验select2解决方案,Jquery插件select2校验解决方案
- jQuery插件之验证控件jquery.validate.js
- Jquery_jquery中attr和prop的区别
- JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法
- jQuery之前端国际化jQuery.i18n.properties[转]
- 修改input的text 通过jquery的html获取值 未变化
- liMarquee – jQuery无缝滚动插件(制作跑马灯效果)