内容简介
本书通过大量实例,由浅入深地介绍了jQuery框架的方方面面,为对这一框架感兴趣的各类开发人员提供了一本完备的指南。书中精选了jQuery的核心组件,着重介绍了jQuery对传统JavaScript编程的增强,细心研读之下,能够对这一流行框架有全面的了解,相信也能给网站编程带来很大的好处。除了核心框架之外,本书还用独立的章节介绍了jQueryUI、jQueryMobile以及插件的使用和开发。在翻译期间,我们也深深地为jQuery系列框架的强大功能和精巧的设计所打动,因此,我们向广大读者推荐本书,希望它能够伴随你们走上Web开发之路。
目录
- 译者序
- 第1章导言1
- 1.1本书的内容2
- 1.2本书使用的约定5
- 1.3本书的目标读者5
- 1.4你需要什么5
- 1.4.1硬件和操作系统5
- 1.4.2jQuery和jQueryUI5
- 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、Web2.0和客户/服务器准则26
- 3.1.1Web上的编程27
- 3.1.2Web2.027
- 3.2JavaScript及其与jQuery的关系28
- 3.3AJAX和XMLHttpRequest(XHR)31
- 3.3.1XML32
- 3.3.2JSON34
- 3.3.3关于JavaScript程序处理JSON的更多细节35
- 3.4DOM和对象38
- 3.5样式表和DHTML40
- 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.2Map46
- 4.3.3Array<类型>标记法47
- 4.3.4jqxHR47
- 4.4jQuery()函数和$()别名47
- 4.5在DOM构建之后执行函数49
- 4.5.1作为jQuery()参数的回调或者匿名函数50
- 4.5.2将document.ready()放入外部JavaScript文件52
- 4.5.3为模块化jQueryWeb应用创建基本结构的示例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作为基础的XPath69
- 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章AJAX233
- 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请求TwitterTweet250
- 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章jQueryUI272
- 11.1什么是jQueryUI272
- 11.1.1支持交互的组件273
- 11.1.2窗口小部件273
- 11.1.3扩展特效274
- 11.1.4主题框架和ThemeRoller274
- 11.2入门274
- 11.3如何使用jQueryUI275
- 11.3.1下载和ThemeRoller275
- 11.3.2在网页上使用jQueryUI279
- 11.3.3jQueryUI样板网页280
- 11.4使用jQueryUI中的组件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基于jQueryUI的完整网站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带有选项的插件示例1322
- 12.2.6带有选项的插件示例2323
- 12.3发布插件325
- 12.4小结326
- 第13章jQueryMobile327
- 13.1基础知识327
- 13.1.1平台328
- 13.1.2下载和集成框架330
- 13.1.3替代方案330
- 13.2角色系统和data—role331
- 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