前言

2005年,受该领域的先驱人物Dean Edwards和Simon Willison等人的启发,John Resig编写了一套函数,利用这些函数能够以编程方式快速查找网页中的元素,并为这些元素指定行为。2006年1月,当他首次发布这个项目时,其中已经包含了DOM操作和基本的动画功能。他把这个项目命名为jQuery,意在强调其查找或“查询”网页元素,并通过JavaScript操作这些元素的核心用途。随着时间推移,jQuery的功能越来越丰富,性能逐步提升,同时也被因特网上一些最有名的站点广泛采用。尽管Resig后来不再领导该项目的开发,但jQuery作为一个真正开源的项目,已经拥有了一个足以傲视群雄的、由Dave Methvin领导的核心团队,以及成千上万名开发人员组成的活跃社区。

jQuery是一个强大的JavaScript库,无论你具有什么编程背景,都可以通过它来增强自己的网站。jQuery在一个紧凑的文件中提供了丰富多样的特性、简单易学的语法和稳健的跨平台兼容性。此外,数百种为扩展jQuery功能而开发的插件,更使得它几乎成为适用于各类客户端脚本编程的必备工具。

本书以通俗易懂的方式介绍了jQuery的基本概念。通过学习本书,即使曾经因编写JavaScript而受过挫折的人,也能够掌握为网页添加交互和动态效果的技术。本书将引导读者跨越Ajax、事件、效果及高级JavaScript语言特性中的各种陷阱,同时给出需要在实际开发中反复用到的jQuery库特性的简明参考。

本书内容

第1章将引领读者对jQuery有个大概的了解。这一章先简单介绍jQuery及其用途,然后涉及如何下载和设置jQuery库,同时也会指导你使用jQuery编写第一个脚本。

第2章讲述如何通过jQuery中的选择符表达式及DOM遍历方法,在页面中的任何地方找到想要的元素。这一章将展示如何使用各种选择符表达式为页面中的不同元素添加样式,其中一些是通过纯CSS方式做不到的。

第3章介绍如何通过jQuery的事件处理机制,在浏览器发生事件时触发行为。同时,还会介绍如何以不唐突的方式添加事件(甚至在页面加载完成之前)。此外,这一章还将深入更高级的主题,例如事件冒泡、委托和命名空间。

第4章介绍通过jQuery实现动画的技术,我们将学会隐藏、显示和移动页面元素,获得赏心悦目的效果。

第5章讲述如何通过命令改变页面。这一章讲述的是动态修改HTML文档结构及其内容的技术。

第6章讨论通过jQuery轻松访问服务器端功能的各种方法,而且不用像过去那样笨拙地刷新页面。在掌握了这个库的基本概念之后,接下来就可以探索如何根据需要来扩展这个库了。

第7章介绍如何查找、安装和使用插件,包括强大的jQuery UI和jQuery Mobile插件库。

第8章讨论如何利用jQuery强大的扩展能力,从头开发自己的插件。不仅包括创建自己的实用函数,还有添加jQuery对象方法,以及使用jQuery UI部件工厂。接下来的几章更加深入地探讨了jQuery的各种特性,在这几章里将学习到很多高级的技术。

第9章重温关于选择符和遍历的知识,讲解了如何优化选择符的性能,如何操作DOM元素栈,以及编写插件扩展选择和遍历功能。

第10章深入讨论委托、截流等大幅提供事件处理性能的技术。同时,还将介绍通过扩展jQuery创建自定义事件和特殊事件的内容。

第11章挖掘了jQuery效果特性的潜力,这一章不仅要讲解如何编写自定义缓动函数,还会介绍在动画的每一阶段执行操作,以及通过自定义队列提前将各种操作排队。

第12章介绍与操作DOM相关的更实用的技术,包括将任意数据附加到元素。此外,这一章也会讨论如何扩展jQuery处理元素的CSS属性的能力。

第13章将带领读者深入理解Ajax相关的概念,包括jQuery的延迟处理机制,从而实现等待数据在一段时间后可用时再对其进行处理。

附录A将帮助读者理解闭包——什么是闭包,怎么利用闭包。

附录B向读者介绍使用jQUnit库对JavaScript程序进行单元测试。这个库是开发和维护高度完善的Web应用所必须的工具。

附录C提供了jQuery的简明参考,包括所有方法和选择符表达式。在实际开发中,明确自己目标的情况下,通过这个简单明了的附录,能够方便快捷地找到正确的方法和选择符。

阅读本书要求

为了运行本书的示例代码,读者需要安装Chrome、Firefox、Safari或微软的Internet Explorer浏览器。

要尝试修改本书示例及完成每章末尾的练习,还需要:

  • 一个文本编辑器;

  • 浏览器中的Web开发工具,如Chrome开发者工具或Firebug(详见第1章1.5节);

  • 每章的源代码文件和一份jQuery库文件(见后面的“下载代码”部分)。

此外,要运行第6章及其后续章节的Ajax示例,还需要配置支持PHP的服务器。

本书读者对象

本书适合想在自己的设计中添加交互元素的Web设计者,也适合想在自己的Web应用中创建最佳用户界面的开发者。读者需要具备基本的JavaScript编程知识和HTML及CSS基础知识,并且应该熟悉JavaScript语法。但是,不需要有jQuery的知识,也不必拥有其他JavaScript库的使用经验。

通过阅读本书,读者能够由浅入深地掌握jQuery 1.10.x及jQuery 2.0.x版的功能及语法。

本书约定

在本书中,读者会发现针对不同信息类型的文本样式。下面是这些样式的示例和解释。

正文中提到的代码如下所示:“此外,通过使用console.log()方法可以在代码中直接下控制台交互。”

代码段版式如下所示:

$(document).ready(function() {
  $('div.poem-stanza').addClass('highlight');
});

当需要读者特别注意代码块中的某一部分时,相关的代码行或项将以粗体印刷:

$('#switcher-narrow').bind('click', function() {
     $('body').removeClass().addClass('narrow');
});

新术语重要词汇将以粗体字显示。

 这里给出重要的注意事项。

 

 这里给出提示和技巧。

读者反馈

我们始终欢迎来自读者的反馈意见。我们想知道读者对本书的看法,读者喜欢哪些内容或不喜欢哪些内容。读者真正深有感触的反馈,对于我们开发图书产品至关重要。

如有反馈意见,请将电子邮件发送到feedback@packtpub.com,不要忘记在邮件标题中注明你要评论的书名。

如果读者对某个主题有经验或者有兴趣,愿意撰写或参与撰写一本书,请查阅www.packtpub.com/authors页面中的作者指南。

客户支持

为了让你的付出得到最大的回报,请注意以下信息。

下载代码

访问http://www.packtpub.com/,可以下载本书及你所购买的所有Packt图书的示例代码1。如果你是从其他地方购买的本书英文版,可以访问http://www.packtpub.com/support并注册,以便通过电子邮件取得示例文件。

1 读者可从图灵社区本书页面(http://ituring.cn/book/1169)下载示例代码、提交勘误。——编者注

此外,访问http://book.learningjquery.com/可以在浏览器中以交互方式体验本书示例。

勘误

虽然我们会全力确保本书内容的准确性,但错误仍在所难免。如果你发现了本书中的错误(包括文字和代码错误),而且愿意向我们提交这些错误,我们会十分感激。这样一来,不仅可以减少其他读者的疑虑,也有助于本书后续版本的改进。要提交你发现的错误,请访问http://www.packtpub.com/submit-errata

举报盗版

互联网上对受版权法保护的作品的盗版行为始终存在,涉及各种媒体。Packt对版权的保护和许可非常重视,如果读者在互联网上看到了我们出版物的盗版,无论什么形式,请告诉我们该盗版的具体链接或所在网站的名字,以便我们采取补救措施。

请把涉嫌包含盗版资料的链接发送到copyright@packtpub.com。

非常感谢你出手保护作者的权益以及我们继续为您提供有价值内容的能力。

疑难解答

如果你对本书的某些方面有疑问,请将电子邮件发送到questions@packtpub.com,我们会尽力解决。

目录

  • 版权声明
  • 第3版译者序
  • 第1版译者序
  • 前言
  • 第 1 章 jQuery 入门
  • 第 2 章 选择元素
  • 第 3 章 事件
  • 第 4 章 样式与动画
  • 第 5 章 操作 DOM
  • 第 6 章 通过 Ajax 发送数据
  • 第 7 章 使用插件
  • 第 8 章 开发插件
  • 第 9 章 高级选择符与遍历
  • 第 10 章 高级事件处理
  • 第 11 章 高级效果
  • 第 12 章 高级 DOM 操作
  • 第 13 章 高级 Ajax
  • 附录 A JavaScript 闭包
  • 附录 B 使用 QUnit 测试 JavaScript
  • 附录 C 简明参考