本书由jQuery API网站维护者亲自撰写,第一版自2008上市以来,一版再版,累计重印14次,是国内首屈一指的jQuery经典著作!
作为最新升级版,本书涵盖jQuery 1.10.x和jQuery 2.0.x。本书前6章以通俗易懂的方式讲解了jQuery的核心组件,包括jQuery的选择符、事件、动画、DOM操作、Ajax支持等。第7章和第8章介绍了jQuery UI、jQuery Mobile及利用jQuery强大的扩展能力开发自定义插件。随后的几章更加深入地探讨了jQuery的各种特性及一些高级技术。附录A特别讲解了JavaScript中闭包的概念,以及如何在jQuery中有效地使用闭包。附录B讲解了使用QUnit测试JavaScript代码的必备知识。附录C给出了jQuery API的快速参考。
......(更多)
Jonathan Chaffer
资深Web专家,著名jQuery资源网站LearningjQuery.com创始人。他还是著名的开源Drupal CMS项目的核心开发人员,开发了广受欢迎的Content Construction Kit模块并大幅修改了菜单系统。
Karl Swedberg
资深Web程序员,就职于Fusionary Media。著名jQuery资源网站LearningjQuery.com创始人。
......(更多)
目 录
第1章 jQuery入门 1
1.1 jQuery能做什么 1
1.2 jQuery为什么如此出色 2
1.3 第一个jQuery驱动的页面 3
1.3.1 下载jQuery 4
1.3.2 本书使用jQuery的哪个版本 4
1.3.3 在HTML文档中引入jQuery 4
1.3.4 编写jQuery代码 7
1.3.5 最终结果 9
1.4 纯JavaScript与jQuery 9
1.5 使用开发工具 10
1.6 小结 13
第2章 选择元素 14
2.1 理解DOM 14
2.2 使用$()函数 15
2.3 CSS选择符 16
2.4 属性选择符 19
2.5 自定义选择符 21
2.5.1 每隔一行为表格添加样式 22
2.5.2 基于上下文内容选择元素 25
2.5.3 基于表单的选择符 26
2.6 DOM遍历方法 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 修改内联CSS 61
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章 操作DOM 85
5.1 操作属性 85
5.1.1 非类属性 85
5.1.2 DOM元素属性 89
5.1.3 表单控件的值 90
5.2 DOM树操作 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.5 DOM操作方法的简单归纳 103
5.6 小结 104
5.7 练习 104
第6章 通过Ajax发送数据 106
6.1 基于请求加载数据 106
6.1.1 追加HTML 107
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.7 Ajax和事件 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.4 jQuery UI插件库 145
7.4.1 效果 145
7.4.2 交互组件 148
7.4.3 部件 149
7.4.4 jQuery UI主题卷轴 151
7.5 jQuery Mobile插件库 152
7.5.1 HTML5自定义数据属性 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 使用jQuery UI部件工厂创建插件 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.3 DOM遍历背后的秘密 199
9.3.1 jQuery对象属性 199
9.3.2 DOM元素栈 201
9.3.3 编写DOM遍历方法插件 201
9.3.4 DOM遍历的性能问题 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.2 Ajax排序 238
12.1.3 JavaScript排序 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.2 DOM创建挂钩 255
12.7 小结 257
12.8 练习 258
第13章 高级Ajax 259
13.1 渐进增强与Ajax 259
13.2 处理Ajax错误 264
13.3 jqXHR对象 265
13.3.1 Ajax承诺 266
13.3.2 缓存响应 267
13.4 截流Ajax请求 268
13.5 扩展Ajax功能 269
13.5.1 数据类型转换器 269
13.5.2 Ajax预过滤器 274
13.5.3 替代传输方式 274
13.6 小结 277
13.7 练习 278
附录A JavaScript闭包 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测试JavaScript 293
B.1 下载QUnit 293
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.2 DOM遍历方法 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.5 DOM操作方法 309
C.5.1 特性与属性 310
C.5.2 内容 310
C.5.3 CSS 310
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.6 Ajax方法 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.1 jQuery对象的属性 315
C.8.2 数组和对象 315
C.8.3 对象内省 316
C.8.4 其他 316
......(更多)
AJAX $('div.details').load('more.html #content')
事件传播和默认操作是相互独立的两套机制,在二者任何一方发生时,都可以终止另一方。如果想要同时停止事件传播和默认操作,可以再事件处理程序中返回false,这是对在时间对象上同时调用.stopPropagation()和.preventDefault()的一种简写方式。
......(更多)