WEB开发网
开发学院网页设计JavaScript jQuery.API源码深入剖析以及应用实现 - 核心函数... 阅读

jQuery.API源码深入剖析以及应用实现 - 核心函数篇

 2010-09-14 13:38:00 来源:WEB开发网   
核心提示: 呵呵,好长的一段代码,jQuery.API源码深入剖析以及应用实现 - 核心函数篇(8),实际最关键的一句代码:Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,i

呵呵,好长的一段代码,实际最关键的一句代码:Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,isXML(context));

对表达式字符串进行解析,最后返回一个jQuery对象,它就是 表达式字符串 最后想要的jQuery对象。

当表达式包含“,”符号的时候,查看这样的一句代码:return this.pushStack( /[^+>] [^+>]/.test( selector ) ? jQuery.unique( elems ) : elems, "find", selector );

它的意思是当表达式字符串包含“+”,“>”作为选择器(比如$("form > input") 或者 $("label + input") )的时候,将作为jQuery.map返回值的elems数组删除重复的元素,这个是有必要的。

最后也是返回一个jQuery对象,它就是 表达式字符串 最后想要的jQuery对象。

5)最后一点,形如 $(function) , $(document).ready(function(){})的表示,通过init方法中的以下代码来实现:

//处理形如$(function),$(document).ready(function(){})的表示
elseif(jQuery.isFunction(selector))
  returnjQuery(document).ready(selector);

如果判断selector是函数的话,将执行jQuery(document).ready(selector);

ready方法具体为:

ready:function(fn){
  //绑定事件监听
  bindReady();
  if(jQuery.isReady)
    fn.call(document,jQuery);
  else
    jQuery.readyList.push(fn);
  returnthis;
}

bindReady方法将事件绑定在文档加载完毕之后,最后通过调用fn.call( document, jQuery );来激发事件的执行。

好了,jQuery的核心函数的原理机制就是这样的,下一篇我将谈下jQuery对象访问和数据缓存的原理机制。

上一页  3 4 5 6 7 8 

Tags:jQuery API 源码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接