第1版译者序

2006年12月26日,中国南海台湾附近发生7.2级地震,数分钟后又发生了6.7级地震。受强烈地震影响,中美海缆等多条国际海底通信光缆发生中断,造成附近国家和地区的国际和地区性通信受到严重影响。2007年1月29日,电信网通宣布,经过20多天的抢修,受地震影响中断的国际通信业务已全部恢复。在此期间,中国雅虎在邮箱主页顶部,发布了一个由于海缆中断可能会造成邮件收发有问题的通告。当时,通告是在页面加载完成大约1秒钟后,以渐变和动画形式出现在页面顶部的——跟jQuery官方网站首页那个“The quick and dirty”的演示效果很相似。而且,通告显示了大约几秒钟后又以动画形式自动消失,整个页面好像什么都没有发生过一样。这个动画效果深深地吸引了我。以前,我也试着写过像卓越亚马逊网站首页“所有20类商品”按钮那种鼠标悬停后动画展示品类列表的脚本,但使用了几十行代码,如今这个更酷的效果是怎么实现的呢?于是,我怀着强烈的好奇心开始查看它的源代码(这要感谢JavaScript天生的开源特性)。这一看不要紧,我惊奇地发现这个效果仅用了寥寥几行代码!惊讶之余,溯本求源,最后“认识”了精巧而美妙的jQuery,特别是它优雅的方法连缀能力,更令我如获至宝、兴奋不已!后来我查了很多jQuery的资料,发现它的文档没有汉化,就用一周的休息时间翻译了它的API(1.1版)文档。这份汉化文档在jQuery中文资料匮乏的时候为广大jQuery网友提供了一点帮助,也获得了大家的认可和好评。

JavaScript库和框架致力于解决的问题,无非就是(跨浏览器的)DOM操作、事件处理、样式更换和外部通信(Ajax)。但jQuery独特的集合对象、隐含迭代、方法连缀、自定义选择符和事件方法,加之只有不到20 KB的超轻巧和执行速度超快,赢得了众多JavaScript开发者的青睐。

jQuery不仅支持各式各样的CSS选择符表达式,而且还支持XPath和自定义的选择符表达式,这一点在JavaScript库和框架领域中无出其右者,使开发者找到要操作的元素或集合简单得难以置信;它细腻灵巧而又富有弹性的事件处理机制,包括事件注册、触发和自定义,特别是令JavaScript 的Guru级人物都喜不自禁的hover()方法,使它在JavaScript库和框架之林中独树一帜、个性十足;它在操作DOM文档时的大处着眼,小处着手,提供的丰富而实用的各种遍历和操作DOM结构及元素的方法,令人耳目一新,简直“直逼每个JavaScript爱好者的心理防线”,那种令人怦然心动的感觉,历久弥新;它处理Ajax请求和响应的简洁明快,它的简单易用,它超级方便的扩展机制,它丰富的插件支持(Interface等),它背后的强大社区……所有这些,引无数JavaScript高手竞折腰!

事实上,因特网上的JavaScript库和框架数以百千计,为什么唯独jQuery对我们这些爱好者有如此大的吸引力呢?就是因为jQuery采取了与其他库和框架皆然不同的理念,处处匠心独运,别出心裁——具体细节,请参考本书第1章。

《jQuery基础教程》作为第一本全面、深入介绍jQuery库的图书,可以说是应运而生的。书中包含了jQuery教程、jQuery实例和JavaScript最佳实践。jQuery教程部分是本书第2章至第6章,分别介绍了jQuery中的选择符、事件处理、DOM操作、动画效果和Ajax方法。其中,第3章、第4章、第5章结尾,特别归纳了相应方法及适用情形,既简明又实用。jQuery实例部分是本书第7章、第8章、第9章,分别围绕Web开发中最常见的表格、表单和动画效果,详尽地探讨了使用jQuery的方方面面。这几章的实例,深入讨论诸多Web开发问题,深入浅出、娓娓道来,时不时令人拍案叫绝、感叹很多百思不得其解的问题,其实只有一层窗户纸!第10章介绍了jQuery强大的扩展能力,介绍了扩展jQuery或者编写自己的jQuery插件的方法。这一章深入到jQuery核心,把整个库的架构全部展现给了读者,并向读者揭示出jQuery库中的“陷阱”和“关键”,令人有豁然开朗、恍然大悟之感。

现代JavaScript开发的一个基准点就是最佳实践。为了让读者不走弯路、不浪费宝贵的时间,本书在介绍通过jQuery进行JavaScript开发的过程中,实践了“渐进增强”和“平稳退化”这两个不唐突的(unobtrusive)JavaScript开发原则。把抽象的概念形象化、具体化,字里行间,渗透着作者对这些先进理念的阐发与启示。

值得一提的是,本书附录C“JavaScript闭包”是名副其实的“压轴好戏”。这么举重若轻、浅显易懂地讨论JavaScript闭包,在译者看来还是头一次。几个精心设计的例子,读者跟着走下来,不知不觉中就能领略到JavaScript这一高级特性的精髓所在(也许没有说得那么容易)。

书是人类进步的阶梯,这话一点不假;但“尽信书不如无书”。要想学习jQuery不能不看jQuery的图书,但是,只看是不管用的,还要动手实践——打开文本编辑器和浏览器,亲手写jQuery代码!书中很多地方讲的只是要点,而动手实践才能收获书中没有讲到的东西。

最后,也是最重要的,我要感谢在翻译此书过程中,傅志红老师给我提供的帮助和建议。感谢武卫东老师、刘江老师对译稿的指点。感谢图灵俱乐部“明月星光”网友的热心建言。不过,由于个人水平和能力,翻译中的错误和不当之处在所难免。如果读者发现了书中的问题,请务必本着“治病救人”的白求恩精神,在我的个人网站http://www.cn-cuckoo.com中指出,或者将电子邮件发送到lsf.email@gmail.com。

2008年2月于北京

目录

  • 版权声明
  • 第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 简明参考