第二部分:jQuery入门
第4章 jQuery简介
第1章介绍了JavaScript编程语言的很多基础知识,包括JavaScript的关键字、概念和语法等。很多这样的概念都相当简单(例如,变量就像是在其中存储值的一个盒子),但是,有些主题可能让你抓耳挠腮或者头疼不已(例如,3.3.3节介绍的for循环)。实际上,对于大多数人来说,JavaScript编程是很难的。关于JavaScript的一切以及它是如何在如此众多的不同Web浏览器中工作的,即便是一本1000页的关于JavaScript编程图书也不能介绍完。
编程是很难的:这就是为什么本书既介绍JavaScript又介绍jQuery。正如4.1节所介绍的,jQuery是一个JavaScript库,它通过处理JavaScript编程的诸多细节,让你快速开始编程。jQuery的信条是“编写更少代码,完成更多事情”,这让编程充满乐趣、更加快速,并且有所回报。使用jQuery,你可以只用一行代码来实现以前需要编写100行JavaScript代码才能做到的事情。当你学完本章和下一章之后,和只是学习完1 000页的JavaScript图书相比,你通过Web页面所能做到的事情要更多。
4.1 JavaScript库简介
很多JavaScript程序必须一次又一次地处理同一组Web页面任务:选择元素、添加新的内容、隐藏和显示内容、修改标签的属性、确定表单字段的值,以及让程序对不同的用户交互做出响应。这些基本操作实际上都是相当复杂的,尤其是,如果你希望程序在所有主流浏览器中工作更是如此。幸运的是,JavaScript库提供了可以省略以前那些耗费时间的编程细节的一种方式。
JavaScript库只不过是JavaScript代码的一个集合,这些代码为很多常见的、日常的JavaScript细节提供了简单的解决方案。我们可以把库看做预先编写的JavaScript函数的一个集合,可以把这些函数添加到自己的Web页面中。这些函数使得完成常见任务变得很容易。在很多情况下,可以用一个JavaScript库中的单个函数来替换自己的JavaScript程序中的多行代码(这还节省了用来测试这些代码所需要的时间)。冗长的程序代码已经过时了。有很多JavaScript库,并且其中的很多都用于像Yahoo、Amazon、CNN、Apple、Twitter以及更多其他的主流Web站点上。
本书使用流行的jQuery库(www.jquery.com)。也有其他的JavaScript库(参见后面的“快速熟悉:其他库”部分的介绍),但是jQuery有如下的很多优点:
·相对较小的文件大小。最小版本的库大约只有90KB,如果你的Web服务器使用“gzip”压缩,可以使文件大小只有30 KB。
·对Web设计师友好。jQuery并不假设你是一位计算机科学家。它利用了大多数Web设计师已有的CSS方面的知识。
·它经过尝试并且证明可用。jQuery用在了数以百万计的站点上,包括很多流行的、高流量的Web站点,例如Digg、Dell、the Onion和NBC,甚至Google也在某些地方使用它,并且它已经内置到了头号博客软件WordPress中。jQuery如此流行的事实,足以说明它有多么好。
·它是免费的。这真是不可抗拒。
·拥有很大的开发者社区。正如你已经看到的,大量的人员从事jQuery项目,如编写代码、修改bug、增加新的功能并且用文档和教程更新其Web站点。对于那些由单个程序员创建的库(或者由单个作者支持的库)来说,如果这个程序员(或作者)逐渐厌倦了这个项目,那么该项目很容易就消失了。另外,jQuery在全世界程序员的努力下,应该可以流行很长的时间。这就好像有大堆的JavaScript程序员在免费为你工作。
·插件、插件、插件。jQuery允许其他程序员创建插件JavaScript程序,这些插件和jQuery一起使用,使得某些任务、效果或功能可以非常容易地添加到Web页面中。在本书中,我们将学习那些可以验证表单、添加下拉导航菜单以及构建交互式幻灯片放映的插件,这些工作可以在半个小时内实现,而不是要花两周时间的项目。实际上,有数以百计的其他插件可供jQuery使用。
我们已经在本书中真正用到了jQuery。在1.5节的教程中,只是添加了数行JavaScript代码就给页面添加了淡入效果。
快速熟悉其他库
jQuery不是唯一的JavaScript库。还有很多其他的库。其中的一些设计用来执行特定的任务,另一些则是以解决存在的每个JavaScript任务为目标的通用库。下面是一些最为流行的库:
·Yahoo User Interface Library(http://developer.yahoo.com/yui/)是Yahoo的一个项目,并且实际上该公司在自己的站点上全面使用它。Yahoo程序员不断地增加和改进这个库,并且他们在YUI站点上提供了丰富的文档。
·Dojo Toolkit(http://dojotoolkit.org/)是另一个发布了很长时间的库。它功能很强大,是处理几乎所有JavaScript任务的JavaScript文件的一个大集合。
·Mootools(http://mootools.net/)是另一个流行的库,具有很好的文档和一个漂亮的Web站点。
·Prototype(http://www.prototypejs.org/)是最早可用的JavaScript库之一。它通常和一个名为scriptaculous(http://script.aculo.us/)的视觉效果库组合使用,后者添加了动画和其他的用户界面组件。