内容简介
这本书是jQuery API网站的维护者写的自2008年第一版上市以来,已重印14次,是国内领先的jQuery经典!
作为最新的升级版本,本书涵盖了jQuery1.10.x个你好jQuery2.x。本书的前六章以一种易于理解的方式解释了jQuery的核心组件,包括jQuery的选择器、事件、动画、DOM操作、Ajax支持等。第7章和第8章介绍了jQueryUI、JQueryMobile以及利用jQuery强大的扩展能力开发自定义插件。在接下来的章节中,将更深入地讨论jQuery的各种特性和一些高级技术。附录A具体解释了JavaScript中闭包的概念以及如何在jQuery中有效地使用闭包。附录B解释了用QUnit测试JavaScript代码的必要知识。附录C给出了jQueryAPI的快速参考。
目录
- 第1章jQuery入门1
- 1.1jQuery能做什么1
- 1.2jQuery为什么如此出色2
- 1.3第一个jQuery驱动的页面3
- 1.3.1下载jQuery4
- 1.3.2本书使用jQuery的哪个版本4
- 1.3.3在HTML文档中引入jQuery4
- 1.3.4编写jQuery代码7
- 1.3.5最终结果9
- 1.4纯JavaScript与jQuery9
- 1.5使用开发工具10
- 1.6小结13
- 第2章选择元素14
- 2.1理解DOM14
- 2.2使用$()函数15
- 2.3CSS选择符16
- 2.4属性选择符19
- 2.5自定义选择符21
- 2.5.1每隔一行为表格添加样式22
- 2.5.2基于上下文内容选择元素25
- 2.5.3基于表单的选择符26
- 2.6DOM遍历方法27
- 2.6.1为特定单元格添加样式28
- 2.6.2连缀30
- 2.7访问DOM元素31
- 2.8小结32
- 2.9练习32
- 第3章事件33
- 3.1在页面加载后执行任务33
- 3.1.1代码执行的时机选择33
- 3.1.2基于一个页面执行多个脚本34
- 3.1.3.ready()的简写形式35
- 3.1.4向.ready()回调函数中传入参数36
- 3.2处理简单的事件36
- 3.2.1简单的样式转换器36
- 3.2.2启用其他按钮39
- 3.2.3利用事件处理程序的上下文40
- 3.2.4使用事件上下文进一步减少代码41
- 3.2.5简写的事件43
- 3.2.6显示和隐藏高级特性43
- 3.3事件传播45
- 3.3.1事件的旅程46
- 3.3.2事件冒泡的副作用47
- 3.4通过事件对象改变事件的旅程48
- 3.4.1事件目标49
- 3.4.2停止事件传播49
- 3.4.3阻止默认操作50
- 3.4.4事件委托50
- 3.4.5使用内置的事件委托功能53
- 3.5移除事件处理程序53
- 3.5.1为事件处理程序添加命名空间54
- 3.5.2重新绑定事件54
- 3.6模仿用户操作56
- 3.7小结59
- 3.8练习60
- 第4章样式与动画61
- 4.1修改内联CSS61
- 4.1.1设置计算的样式属性值63
- 4.1.2带厂商前缀的样式属性65
- 4.2隐藏和显示元素66
- 4.3效果和时长68
- 4.3.1指定显示速度68
- 4.3.2淡入和淡出69
- 4.3.3滑上和滑下70
- 4.3.4切换可见性71
- 4.4创建自定义动画72
- 4.4.1手工创建效果73
- 4.4.2一次给多个属性添加动画效果73
- 4.5并发与排队效果76
- 4.5.1处理一组元素77
- 4.5.2处理多组元素80
- 4.5.3简单概括83
- 4.6小结84
- 4.7练习84
- 第5章操作DOM85
- 5.1操作属性85
- 5.1.1非类属性85
- 5.1.2DOM元素属性89
- 5.1.3表单控件的值90
- 5.2DOM树操作90
- 5.2.1重新认识$()函数90
- 5.2.2创建新元素91
- 5.2.3插入新元素91
- 5.2.4移动元素92
- 5.2.5包装元素94
- 5.2.6使用反向插入方法96
- 5.3复制元素99
- 5.4内容setter和getter方法101
- 5.5DOM操作方法的简单归纳103
- 5.6小结104
- 5.7练习104
- 第6章通过Ajax发送数据106
- 6.1基于请求加载数据106
- 6.1.1追加HTML107
- 6.1.2操作JavaScript对象110
- 6.1.3加载XML文档115
- 6.2选择数据格式118
- 6.3向服务器传递数据119
- 6.3.1执行GET请求120
- 6.3.2执行POST请求123
- 6.3.3序列化表单124
- 6.4为Ajax请求提供不同的内容126
- 6.5关注请求127
- 6.6错误处理129
- 6.7Ajax和事件131
- 6.8安全限制132
- 6.9其他工具134
- 6.9.1低级Ajax方法134
- 6.9.2修改默认选项135
- 6.9.3部分加载HTML页面135
- 6.10小结138
- 6.11练习138
- 第7章使用插件139
- 7.1查找插件和帮助139
- 7.2使用插件139
- 7.2.1下载并包含Cycle插件140
- 7.2.2调用插件提供的方法140
- 7.2.3为插件方法指定参数142
- 7.2.4修改参数默认值142
- 7.3其他形式的插件143
- 7.3.1自定义选择符143
- 7.3.2全局函数插件144
- 7.4jQueryUI插件库145
- 7.4.1效果145
- 7.4.2交互组件148
- 7.4.3部件149
- 7.4.4jQueryUI主题卷轴151
- 7.5jQueryMobile插件库152
- 7.5.1HTML5自定义数据属性152
- 7.5.2移动导航153
- 7.5.3一个文档支持多个页面157
- 7.5.4交互式元素158
- 7.5.5高级功能161
- 7.6小结161
- 7.7练习161
- 第8章开发插件163
- 8.1在插件中使用$别名163
- 8.2添加新的全局函数163
- 8.3添加jQuery对象方法169
- 8.3.1对象方法的上下文169
- 8.3.2隐式迭代170
- 8.3.3方法连缀171
- 8.4提供灵活的方法参数172
- 8.4.1参数对象173
- 8.4.2默认参数值174
- 8.4.3回调函数175
- 8.4.4可定制的默认值176
- 8.5使用jQueryUI部件工厂创建插件177
- 8.5.1创建部件178
- 8.5.2销毁部件180
- 8.5.3启用和禁用部件181
- 8.5.4接受部件选项182
- 8.5.5添加子方法183
- 8.5.6触发部件事件183
- 8.6插件设计建议184
- 8.7小结185
- 8.8练习185
- 第9章高级选择符与遍历187
- 9.1深入选择与遍历187
- 9.1.1动态筛选表格内容189
- 9.1.2为表格行添加条纹效果191
- 9.1.3组合筛选与条纹192
- 9.1.4更多选择符与遍历方法193
- 9.2定制与优化选择符194
- 9.2.1编写定制的选择符插件194
- 9.2.2选择符的性能问题196
- 9.3DOM遍历背后的秘密199
- 9.3.1jQuery对象属性199
- 9.3.2DOM元素栈201
- 9.3.3编写DOM遍历方法插件201
- 9.3.4DOM遍历的性能问题203
- 9.4小结205
- 9.5练习205
- 第10章高级事件处理206
- 10.1再谈事件206
- 10.1.1追加数据页面208
- 10.1.2悬停时显示数据209
- 10.2事件委托210
- 10.2.1使用jQuery的委托方法211
- 10.2.2选择委托的作用域212
- 10.2.3早委托212
- 10.3自定义事件213
- 10.3.1无穷滚动215
- 10.3.2自定义事件参数216
- 10.4节流事件217
- 10.5扩展事件219
- 10.6小结222
- 10.7练习222
- 第11章高级效果223
- 11.1再谈动画223
- 11.2观测及中断动画225
- 11.2.1确定动画状态226
- 11.2.2中止运行的动画226
- 11.3全局效果属性227
- 11.3.1禁用所有效果228
- 11.3.2定义效果时长228
- 11.4多属性缓动230
- 11.5使用延迟对象231
- 11.6精细地控制动画234
- 11.7小结236
- 11.8练习236
- 第12章高级DOM操作237
- 12.1排序表格行237
- 12.1.1服务器端排序237
- 12.1.2Ajax排序238
- 12.1.3JavaScript排序238
- 12.2移动和插入元素240
- 12.2.1为已有的文本添加链接240
- 12.2.2简单的JavaScript数组排序241
- 12.2.3对DOM元素排序241
- 12.3在DOM元素中保存数据243
- 12.3.1执行预先计算244
- 12.3.2存储非字符串数据245
- 12.3.3变换排序方向247
- 12.4使用HTML5自定义数据属性249
- 12.5使用JSON排序和构建行250
- 12.5.1修改JSON对象252
- 12.5.2按需重新构建内容253
- 12.6高级属性操作254
- 12.6.1简捷地创建元素254
- 12.6.2DOM创建挂钩255
- 12.7小结257
- 12.8练习258
- 第13章高级Ajax259
- 13.1渐进增强与Ajax259
- 13.2处理Ajax错误264
- 13.3jqXHR对象265
- 13.3.1Ajax承诺266
- 13.3.2缓存响应267
- 13.4截流Ajax请求268
- 13.5扩展Ajax功能269
- 13.5.1数据类型转换器269
- 13.5.2Ajax预过滤器274
- 13.5.3替代传输方式274
- 13.6小结277
- 13.7练习278
- 附录AJavaScript闭包279
- A.1创建内部函数279
- A.1.1在任何地方调用内部函数280
- A.1.2理解变量作用域281
- A.2处理闭包之间的交互283
- A.3在jQuery中创建闭包284
- A.3.1$(document).ready()
- 的参数284
- A.3.2绑定事件处理程序285
- A.3.3在循环中绑定处理程序286
- A.3.4命名及匿名函数288
- A.4应对内存泄漏的风险289
- A.4.1避免意外的引用循环290
- A.4.2控制DOM与JavaScript的循环290
- A.5小结292
- 附录B使用QUnit测试JavaScript293
- B.1下载QUnit293
- B.2设置文档293
- B.3组织测试294
- B.4添加和运行测试295
- B.5其他测试类型299
- B.6最佳实践299
- B.7小结300
- 附录C简明参考301
- C.1选择符表达式301
- C.1.1简单的CSS选择符301
- C.1.2在同辈元素间定位301
- C.1.3在匹配的元素间定位302
- C.1.4属性302
- C.1.5表单303
- C.1.6其他自定义选择符303
- C.2DOM遍历方法304
- C.2.1筛选元素304
- C.2.2后代元素304
- C.2.3同辈元素304
- C.2.4祖先元素305
- C.2.5集合操作305
- C.2.6操作选中的元素306
- C.3事件方法306
- C.3.1绑定306
- C.3.2简写绑定307
- C.3.3触发事件307
- C.3.4简写触发方法308
- C.3.5实用方法308
- C.4效果方法308
- C.4.1预定义效果308
- C.4.2自定义动画309
- C.4.3队列操作309
- C.5DOM操作方法309
- C.5.1特性与属性310
- C.5.2内容310
- C.5.3CSS310
- C.5.4尺寸311
- C.5.5插入311
- C.5.6替换312
- C.5.7删除312
- C.5.8复制312
- C.5.9数据312
- C.6Ajax方法312
- C.6.1发送请求313
- C.6.2监视请求313
- C.6.3配置313
- C.6.4实用方法314
- C.7延迟方法314
- C.7.1创建对象314
- C.7.2延迟对象的方法314
- C.7.3承诺对象的方法315
- C.8其他方法315
- C.8.1jQuery对象的属性315
- C.8.2数组和对象315
- C.8.3对象内省316
- C.8.4其他31
如果你是一名有工作经验的前端,但是没有jQuery的使用经验,而且又要快速上手干活,那么这本书还是非常适合的。
关于JS本身比较难理解的是闭包、作用域链还有基于原型的继承,如果再熟悉浏览器端的编程(主要是BOM、DOM)、事件、CSS,那么就可以有基本的能力去阅读任何一个JS框架或库了,如果你再有服务端的开发经验就更好了,比如我这种曾经的优秀的java、jee程序员,哈哈。除了UI控件的提供,各种框架或库要解决的主要问题和提供给开发人员的能力都是差不多相同的。
这本书可以用于快速入门,大大缩短jQuery入门所需要的时间(实际上就算没有这本书,看现有的资料,1个星期也足够入门了)。
但还是强烈建议购买此书,因为这能让你能达到看现在有资料好几个月也未必能达到的水平。
至少我现在依然能从上面学到不少东西!
学习jQuery直接看本书即可。分块详细介绍了基础api的用法,还补充了一些高级内容,顺便还复习了一下前端开发的一些注意事项。书后的速查表也好评。