jQuery工作原理
首先需要了解JavaScript以及文档对象模型DOM的联系。
访问网页元素
网页在浏览器中以DOM中的元素表现。这些元素通常具有特性(Attribute)、文本内容和子元素。如果对JavaScript以及DOM的熟悉与掌握程度非常高,甚至可以使用其复现出jQuery中的相关功能,只不过这种方式不仅复杂,而且可靠度比较低。(而jQuery的访问技术将对DOM元素的访问的过程缩短和标准化,弥补了浏览器相关特殊性引发的问题,并且添加了遗漏的功能。)
jQuery命名空间和jQuery对象
命名空间namespace在编程中的作用性不言而喻,但是JavaScript不支持命名空间的概念。在JavaScript中,为了实现这一概念,使用句点标记法分割对象空间和属性,并以此为模板,将标识符中以句点分割的组件当做不同的命名空间。
jQuery试图在JavaScript中引入命名空间的概念。在这个框架中,所有全局对象被指定在一个命名空间中,该命名空间用以 jQuery的标志开始、分隔符之后带上整整名称的标识符定义。以后,被标识的元素被指定到jQuery的命名空间,可以通过jQuery的标志或者较短的别名$来访问。
jQuery中的特殊数据类型和结构
由于jQuery基于JavaScript,所以js中的标准数据类型(String,Number,Boolean,Object,Function;数组;回调;XMLHttpRequest对象;原型技术)
选项
jquery中的选项实际上指的是JavaScript对象
map
jQuery中添加二楼一种数据类型Map,作为特殊的选项。例如,这个类型用于框架的AJAX函数中。请求数据可以以这种形式交付。
jqxHR
jQuery1.5中推出了一种与AJAX关联的新数据类型。$.AJAX()方法返回一个类型为布尔类型的整数
jQuery()函数和$()别名
上下文
jQuery()的第二个参数(可选的)指定上下文(context)。上下文指的是元素课件的环境。如果不指定它,则用整个html文档作为上下文。否则,可以指定一个DOM元素、文档或者jQuery对象作为上下文,然后,元素仅在这个上下文中可见。
在DOM构建之后执行函数
由于无法在DOM树正确地构造之前,可靠地通过JavaScript在浏览器中访问webpage的组件,因为不同的浏览在构造DOM时的表现不同,在试图访问网页元素是会发生各种各样的问题,尤其是在试图过早地访问网页元素的情况下。为此,jQuery提供了避免此类问题的一个可靠办法。
注:在JavaScript中,原则上,可以使用onload时间处理器等待网页的完全加载,然而,这个事件处理器在不同的browser中有错误的实现。
作为jQuery()参数的的回调或者是匿名函数
使用$(function(){})作为匿名函数的方法来实现$(document).ready()的功能比较常用。
用jQuery()创建一个元素并且将其插入网页
jQuery()和$()的一个有趣的功能是即时创建DOM元素,然后,这些元素可以可靠地动态插入网页,使用.html或者innerHTML属性,具体取决于元素的类型。但是不需要担心内部的工作原理。
另外还有一个方法,具体元素创建之后调用其appendTo()方法。
初始化特性的选项
从jQuery1.4起,可以在创建元素中,使用者厚重感你方法,指定选项为第二个参数,设置所创建元素的属性。
var block = $(“div/”,{
css:{
background:“red”,
color:“green”
},
html:“a block with parameters”
click:function(){
$(this.fadeOut(“slow”));
}
})
版本1.5之后的新技术
jQuery.sub()
用此方法创建jQuery对象的一个新拷贝,其属性和方法可以修改,而不会影响原始的jQuery对象。框架中引入这个这个方法有两个原因。其一,可以方便地用它重写jQuery中的方法,而不会损毁原始的方法或者阻止其访问。其二,可以更好地封装jQuery插件的命名空间。
jQuery.when()
这个方法让你描述一种if条件,如果出现该条件,可以执行一个或者多个对象的回调函数。这对于异步或者通常推迟发生的事件(比如说ajax)特别有用。和then方法连接使用,可以描述一个紧凑的响应系统。