摘要: 上一章讲了正则表达式,这一章继续我们的前菜,浏览器兼容性处理。先介绍一个简单的沙盒测试函数。/** * Support testing using an element * @param {Function} fn Passed the created div and expects a boolean result *///特性检测的一个技巧,造一个div,最后将其删掉,提供一种简单的沙盒(如果该div不加入到DOM树上,则部分属性如currentStyle会没有)function assert( fn ) { var div = document.createElement("d 阅读全文
posted @ 2014-03-25 22:12 Suprise 阅读(911) 评论(0) 推荐(1) 编辑
摘要: 看完了上篇,对Sizzle有了一个大致的了解,我们接下来就可以正式开始啃Sizzle的源码了。上来就讲matcher难度太大,先来点开胃菜,讲讲Sizzle中的各个正则表达式的作用吧(本来还想讲初始化的,篇幅太长了,留待下篇吧)。友情提醒:阅读本文请先学习正则表达式,至少对捕获组以及js的正则API(exec,match,test,字符串转正则)有一定的了解这是前面一堆变量声明和函数声明。var Sizzle =/*! * Sizzle CSS Selector Engine v1.10.16 * http://sizzlejs.com/ * * Copyright 2013 jQuery F 阅读全文
posted @ 2014-03-25 20:06 Suprise 阅读(826) 评论(2) 推荐(1) 编辑
摘要: 最近在啃jQuery1.11源码,上来就遇到Sizzle这个jQuery的大核心,虽然已经清楚了Sizzle的用途,先绕过去也没事,但明知山有虎偏向虎山行才是我们要做的。本文面向的阅读对象:正在学习Sizzle源码或有一定前端基础的同学们,可以一边看源码一边看这些文章进行验证,所以虽然我会分析源码中的正则表达式,有大量的注释,但不会讲正则表达式的基本用法!(我会给出一些链接,但不一定全面,请锻炼自主搜索的能力;为了避免歧义,本文的一些词会采用源码中的英文或js中的属性名)Sizzle部分的代码已经啃完,本系列还有后续,这几天将会一一放出。本文主要分为两个部分:什么是Sizzle、Sizzle的 阅读全文
posted @ 2014-03-25 11:32 Suprise 阅读(1243) 评论(0) 推荐(2) 编辑