jQuery JavaScript库极大地简化了当前富Web应用的创建,并能与领先的所有Web开发平台和框架无缝整合。本书将向你介绍如何在你自己的项目中使用jQuery,、jQuery UI和jQuery Mobile。你将能够了解到从添加简单的特效到构建完整的富因特网应用的全部过程。
在不断发生重大改变的互联网中,各种技术层出不穷,但在Web前端编程中,JavaScript以其编程简易和各种平台均支持而长盛不衰,即便在HTML语言和CSS都得到很大扩充的今天,它仍是Web前端人员的首选语言。
Web前端的编程意味着开发人员要面对各种纷繁复杂的平台和浏览器。浏览器历史遗留下来的实现不一致等问题虽然在万维网联盟和各厂商的努力下有所改进,但仍不时困扰着开发人员,而移动Web的兴起和用户对上网体验的高要求更加剧了这一问题。如何在不花费大量精力的情况下开发在各种平台上都能提供一致体验的Web应用呢?在这种情况下,各种JavaScript框架应运而生,jQuery就是其中的佼佼者。
jQuery不仅从核心的DOM操纵开始,结合CSS选择器,为JavaScript提供了大量方便的函数和方法,在所有主流平台上实现一致的效果,大大减轻了开发人员的负担和工作量,而且通过jQuery UI和jQuery Mobile子框架,更进一步延伸了开发的范围,既能在图形界面上为RIA提供良好的支持,又能够适应现代移动Web开发的要求。这些强大的能力使它成为许多网站的支柱,也备受Microsoft等大厂商的青睐。
本书通过大量实例,由浅入深地介绍了jQuery框架的方方面面,为对这一框架感兴趣的各类开发人员提供了一本完备的指南。书中精选了jQuery的核心组件,着重介绍了jQuery对传统JavaScript编程的增强,细心研读之下,能够对这一流行框架有全面的了解,相信也能给网站编程带来很大的好处。除了核心框架之外,本书还用独立的章节介绍了jQuery UI、jQuery Mobile以及插件的使用和开发。在翻译期间,我们也深深地为jQuery系列框架的强大功能和精巧的设计所打动,因此,我们向广大读者推荐本书,希望它能够伴随你们走上Web开发之路。
本书的翻译工作主要由姚军完成,徐锋、陈绍继、郑端、吴兰陟、施游、林起浪、刘建林、陈志勇、白龙、方翊、林耀成等人也为本书的翻译工作做出了贡献。由于译者水平所限,错漏在所难免,敬请广大读者批评指正。
封面图
目录
- 译者序
- 第1章导言 1
- 1.1本书的内容 2
- 1.2本书使用的约定 5
- 1.3本书的目标读者 5
- 1.4你需要什么 5
- 1.4.1硬件和操作系统 5
- 1.4.2jQuery和jQuery UI 5
- 1.4.3浏览器 7
- 1.4.4用于测试的不同操作系统和虚拟机 9
- 1.4.5实际测试用的Web服务器 9
- 1.4.6开发工具 11
- 1.5关于作者 13
- 1.6小结 13
- 第2章jQuery的第一批示例 14
- 2.1元素访问和DOM保护 14
- 2.2用jQuery风格的DHTML编辑网页 18
- 2.3以动画方式缩小和扩大一个元素 20
- 2.4动态改变特性 24
- 2.5小结 25
- 第3章基本知识 26
- 3.1互联网上的Web、Web 2.0和客户/服务器准则 26
- 3.1.1Web上的编程 27
- 3.1.2Web 2.0 27
- 3.2JavaScript及其与jQuery的关系 28
- 3.3AJAX和XMLHttpRequest(XHR) 31
- 3.3.1XML 32
- 3.3.2JSON 34
- 3.3.3关于JavaScript程序处理JSON的更多细节 35
- 3.4DOM和对象 38
- 3.5样式表和DHTML 40
- 3.5.1CSS:Web标准语言 40
- 3.5.2CSS声明的具体语法 41
- 3.5.3选择器 41
- 3.6小结 41
- 第4章jQuery 工作原理 42
- 4.1访问网页元素 43
- 4.2jQuery命名空间和jQuery对象 45
- 4.3jQuery中的特殊数据类型和结构 45
- 4.3.1选项 46
- 4.3.2Map 46
- 4.3.3Array<类型>标记法 47
- 4.3.4jqxHR 47
- 4.4jQuery()函数和$()别名 47
- 4.5在DOM构建之后执行函数 49
- 4.5.1作为jQuery()参数的回调或者匿名函数 50
- 4.5.2将document.ready()放入外部JavaScript文件 52
- 4.5.3为模块化jQuery Web应用创建基本结构的示例 52
- 4.6用jQuery()创建一个元素并将其插入网页 54
- 4.7用jQuery()包装现有元素 58
- 4.8使用jQuery和其他框架结合 60
- 4.9关于上下文的更多知识 62
- 4.10链接jQuery对象 64
- 4.11版本1.5之后的新核心技术 65
- 4.11.1jQuery.sub() 65
- 4.11.2jQuery.when() 65
- 4.11.3版本1.6:有何新特性 66
- 4.12小结 67
- 第5章选择器和过滤器 68
- 5.1基础知识 69
- 5.1.1什么是选择器 69
- 5.1.2什么是过滤器 69
- 5.1.3作为基础的XPath 69
- 5.2基本选择器和层次化选择器 71
- 5.2.1示例 72
- 5.2.2潜在的问题 78
- 5.3过滤选择器 79
- 5.3.1基本过滤器 79
- 5.3.2内容过滤器 84
- 5.3.3可见性过滤器 86
- 5.3.4子过滤器 88
- 5.3.5特性过滤器 90
- 5.3.6表单元素过滤器和表单过滤器 93
- 5.4过滤器方法 97
- 5.4.1eq() 97
- 5.4.2not() 97
- 5.4.3first()和last() 97
- 5.4.4slice() 97
- 5.4.5filter() 98
- 5.4.6is() 99
- 5.4.7map() 100
- 5.5小结 101
- 第6章访问网页的元素 102
- 6.1检查、修改、添加和删除节点的一般信息 102
- 6.2检查和修改节点内容:html()和text() 102
- 6.3表单字段的内容:val() 105
- 6.4通过attr()访问特性 107
- 6.5在网页中插入节点 107
- 6.5.1append()和prepend() 107
- 6.5.2appendTo()和PrependTo() 111
- 6.6在前面或者后面插入节点 116
- 6.6.1after()和before() 116
- 6.6.2insertAfter()和insertBefore() 119
- 6.7包装 120
- 6.7.1用wrap()单独包装 120
- 6.7.2用wrapAll()包装所有元素 122
- 6.7.3用wrapInner()包装内部区域 123
- 6.7.4用unwrap()解除包装 124
- 6.8用replaceWith()和replaceAll()替换 124
- 6.8.1用replaceWith()替换 124
- 6.8.2用replaceAll()替换所有元素 127
- 6.9用empty()和remove()/detach 以及removeAttr()删除 129
- 6.9.1remove()的替代品:detach() 133
- 6.9.2删除特性 133
- 6.10用clone()进行克隆 134
- 6.11搜索和查找 138
- 6.11.1子节点和父节点:children()和parent()加上parents()/parentsUntil() 138
- 6.11.2offsetParent()和closest() 141
- 6.11.3兄弟元素 142
- 6.11.4用has()搜索后代 144
- 6.12用find()和contents()寻找 145
- 6.13在数组和对象中循环的jQuery方法each() 146
- 6.13.1jQuery.each() 147
- 6.13.2each()方法 151
- 6.14add()方法 152
- 6.15更为全面的一个例子:日期组件 153
- 6.16小结 160
- 第7章在jQuery中使用样式表格式化 161
- 7.1css()方法 162
- 7.1.1获取样式属性 162
- 7.1.2设置属性 163
- 7.2修改元素的类 164
- 7.2.1添加类:addClass() 165
- 7.2.2删除类:removeClass() 171
- 7.2.3切换类:toggleClass() 172
- 7.2.4测试一个类:hasClass() 174
- 7.3定位方法 176
- 7.3.1用position()确定位置 176
- 7.3.2文档相对定位:offset() 180
- 7.4滚动方法 186
- 7.5高度和宽度 189
- 7.6内部和外部尺寸 191
- 7.7小结 193
- 第8章jQuery下的事件处理 194
- 8.1事件、事件处理器、触发器和数据绑定的基本信息 194
- 8.1.1事件 194
- 8.1.2事件处理器的一般信息 194
- 8.1.3HTML事件处理器 195
- 8.1.4JavaScript事件处理器 195
- 8.1.5事件对象 196
- 8.1.6冒泡 197
- 8.1.7数据绑定 198
- 8.1.8触发器 198
- 8.2jQuery中的事件对象 198
- 8.2.1jQuery.Event构造程序 198
- 8.2.2jQuery.Event事件对象的属性 199
- 8.2.3jQuery.Event类型对象的方法 201
- 8.3坐稳了,出发:$(document).ready() 203
- 8.4事件助手 203
- 8.5扩展的事件处理方法 206
- 8.5.1bind()和unbind()方法 206
- 8.5.2仅有的一个:one() 209
- 8.5.3trigger()方法 209
- 8.5.4triggerHandler() 211
- 8.5.5实时事件:live()和die()方法以及delegate()和undelegate() 212
- 8.5.6交互辅助函数 215
- 8.6小结 218
- 第9章特效与动画 219
- 9.1基本用法 219
- 9.1.1你所需要的就是速度 219
- 9.1.2指定一个回调 220
- 9.1.3链接 220
- 9.1.4队列 221
- 9.1.5通过stop()和jQuery.fx.off停止 221
- 9.1.6永不停止的动画 222
- 9.1.7动画的类型 222
- 9.2显示和隐藏:show()和hide()方法 223
- 9.3滑动特效:slideDown()、slideUp()和slideToggle() 223
- 9.4透明度特效:fadeIn()、fadeOut()和fadeTo()(加上toggle()) 225
- 9.5用animate()实现单独动画 227
- 9.6小结 232
- 第10章AJAX 233
- 10.1AJAX和XMLHttpRequest(XHR)基础 233
- 10.1.1手工创建一个XMLHttpRequest对象 234
- 10.1.2XHR对象方法 235
- 10.1.3XHR对象属性 235
- 10.1.4不使用特殊jQuery方法的数据请求实用示例 236
- 10.1.5AJAX通信的数据格式 237
- 10.1.6AJAX请求处理 238
- 10.2jQuery中的特殊AJAX支持 239
- 10.2.1JSONP和远程请求 239
- 10.2.2jqXHR对象 239
- 10.2.3jQuery中的AJAX请求方法 240
- 10.2.4指定数据类型 240
- 10.2.5避免缓冲 241
- 10.3$.get()和$.post() 241
- 10.3.1只从Web服务器请求普通文本 242
- 10.3.2通过$.get()和$.post()向Web服务器发送数据 243
- 10.3.3获取和解析XML数据 246
- 10.4获取和解析JSON数据:getJSON()和parseJSON() 249
- 10.4.1简单的JSON应用 249
- 10.4.2通过JSONP请求Twitter Tweet 250
- 10.5通过AJAX在以后加载脚本:jQuery.getScript() 253
- 10.6加载数据的通用变种:load() 254
- 10.7序列化数据 258
- 10.7.1serialize()方法 259
- 10.7.2serializeArray()方法 260
- 10.7.3通用版本:param() 260
- 10.8AJAX的默认值 260
- 10.9AJAX事件和AJAX事件处理器 261
- 10.9.1局部事件 261
- 10.9.2全局事件 262
- 10.10完全控制 263
- 10.10.1jQuery.ajax() 263
- 10.10.2JSONP请求 267
- 10.10.3加载和执行JavaScript文件 268
- 10.10.4发送数据并评估成功 268
- 10.10.5$.ajax()的扩展技术 269
- 10.11小结 271
- 第11章jQuery UI 272
- 11.1什么是jQuery UI 272
- 11.1.1支持交互的组件 273
- 11.1.2窗口小部件 273
- 11.1.3扩展特效 274
- 11.1.4主题框架和ThemeRoller 274
- 11.2入门 274
- 11.3如何使用jQuery UI 275
- 11.3.1下载和ThemeRoller 275
- 11.3.2在网页上使用jQuery UI 279
- 11.3.3jQuery UI样板网页 280
- 11.4使用jQuery UI中的组件 280
- 11.4.1默认设置 281
- 11.4.2组件和窗口小部件的一些基本原则 282
- 11.4.3组件的属性/选项 283
- 11.4.4组件的方法 285
- 11.4.5组件和窗口小部件中的事件 288
- 11.5组件和窗口小部件概述 291
- 11.5.1交互组件 291
- 11.5.2窗口小部件 292
- 11.5.3实用工具 302
- 11.6特效 302
- 11.6.1effect()方法 302
- 11.6.2使用animate()进行颜色动画 303
- 11.7基于jQuery UI的完整网站 303
- 11.8小结 307
- 第12章插件 308
- 12.1jQuery插件页面 308
- 12.1.1搜索和使用现有插件 308
- 12.1.2验证插件 311
- 12.2创建自定义插件 317
- 12.2.1为什么创建自定义插件 317
- 12.2.2创建你的第一个插件 317
- 12.2.3创建简单插件的主要原则 320
- 12.2.4创建较为复杂的插件的原则 321
- 12.2.5带有选项的插件示例1 322
- 12.2.6带有选项的插件示例2 323
- 12.3发布插件 325
- 12.4小结 326
- 第13章jQuery Mobile 327
- 13.1基础知识 327
- 13.1.1平台 328
- 13.1.2下载和集成框架 330
- 13.1.3替代方案 330
- 13.2角色系统和data-role 331
- 13.3移动网页的基本结构 332
- 13.4链接页面 334
- 13.4.1通过Hijax实现外部链接 334
- 13.4.2内部链接和页面特殊解释 334
- 13.5过渡 336
- 13.6对话框 337
- 13.7按钮 338
- 13.7.1具有图标的按钮 338
- 13.7.2块元素或者行内元素 339
- 13.7.3分组 339
- 13.7.4实用示例 340
- 13.8工具栏和导航栏 343
- 13.9列表 346
- 13.10表单元素 350
- 13.10.1字段容器 350
- 13.10.2各种不同的表单元素 350
- 13.10.3表单元素的插件方法 353
- 13.10.4发送表单数据 354
- 13.11特殊事件 354
- 13.11.1触摸事件 354
- 13.11.2方向变化 354
- 13.11.3滚动事件 354
- 13.11.4页面事件 355
- 13.12主题框架和通用内容设计 356
- 13.13收起和展开内容 358
- 13.14小结 360
- 附录 361