jQuery 技术内幕

jQuery 技术内幕

作者:高云
语言:中文
出版:机械工业出版社
ISBN:9787111440826
出版时间:2014-1-1
页数:700
定价:99元
装帧:精装
购买纸质书

内容简介

内容已隐藏,请登录后查看

登录后继续查看

作者简介

高云,阿里巴巴资深前端开发工程师花名墨智,拥有丰富的前端开发经验,擅长 HTML5、CSS、JavaScript 等 Web 开发技术和 Java 技术,对JavaScript相关技术的应用和实现原理有深入研究和独到见解,曾担任项目经理、前端架构师等职。个人博客 nuysoft.com,开源作品有 mockjs.com。

本书目录

第1章总体架构1
1.1 设计理念1
1.2 总体架构1
1.3 自调用匿名函数4
1.4 总结6
第2章构造 jQuery 对象6
2.1 构造函数 jQuery7
jQuery selector [, context] 7
jQuery html [, ownerDocument] 、jQuery html, props 8
jQuery element 、jQuery elementArray 9
jQuery object 9
jQuery callback 10
jQuery jQuery object 10
jQuery10
2.2 总体结构10
2.3 selector, context, rootjQuery 13
12个分支13
源码分析14
小结24
2.4 jQuery.buildFragment args, nodes, scripts 24
实现原理24
源码分析25
小结30
2.5 jQuery.clean elems, context, fragment, scripts 31
实现原理31
源码分析32
小结48
2.6 jQuery.extend、48
如何使用48
源码分析49
2.7 原型属性和方法53
.selector、.jquery、.length、.size54
.toArray、.get [index] 55
.each functionindex, Element 、jQuery.each collection, callbackindexInArray, valueOfElement 56
.map callbackindex, domElement 、jQuery.map arrayOrObject, callback value, indexOrKey 59
.pushStack elements, name, arguments 62
.end64
.eq index 、.first、.last、.slice start [, end] 64
.push valur, ... 、.sort [orderfunc] 、.splice start,deleteCount, value, ... 65
小结66
2.8 静态属性和方法67
jQuery.noConflict [removeAll] 69
类型检测:jQuery.isFunction obj 、jQuery.isArray obj 、jQuery.isWindow obj 、jQuery.isNumeric value 、jQuery.type obj 、jQuery.isPlainObject object 、jQuery.isEmptyObject object 70
解析 JSON 和 XML:jQuery.parseJSON data、jQuery.parseXML data 75
jQuery.globalEval code 81
jQuery.camelCase string 82
jQuery.nodeName elem, name 83
jQuery.trim str 84
数组操作方法:jQuery.makeArray obj 、jQuery.inArray value, array [, fromIndex] 、jQuery.merge first, second 、jQuery.grep array, functionelementOfArray, indexInArray [, invert] 85
jQuery.guid、jQuery.proxy function, context 91
jQuery.access elems, key, value, exec, fn elem, key, value , pass 94
jQuery.error message 、jQuery.noop、jQuery.now96
浏览器嗅探:jQuery.uaMatch ua 、jQuery.browser96
小结98
2.9 总结100
第3章选择器 Sizzle100
3.1 总体结构101
3.2 选择器表达式104
3.3 设计思路105
3.4 Sizzle selector, context, results, seed 107
3.5 正则 chunker119
3.6 Sizzle.find expr, context, isXML 121
3.7 Sizzle.filter expr, set, inplace, not 124
3.8
&34;+&34;130
&34;>&34;132
&34;&34;133
&34;&34;134
dirCheck dir, cur, doneName, checkSet, nodeCheck, isXML 135
dirNodeCheck dir, cur, doneName, checkSet, nodeCheck, isXML 136
3.9 Sizzle.selectors138







3.10 工具方法176
Sizzle.uniqueSort results 176
sortOrdera, b177
Sizzle.contains a, b 182
Sizzle.error msg 182
Sizzle.getText elem 183
3.11 便捷方法184
Sizzle.matches expr, set 184
Sizzle.matchesSelector node, expr 184
3.12 jQuery 扩展186
暴露 Sizzle 给 jQuery186
.find selector 186
.has target 188
.not selector 、.filter selecotr 189
.is selector 191
.closest selectors, context 193
.index elem 195
.add selector, context 196
jQuery.filter expr, elems, not 197
:animated198
:hidden、:visible199
3.13 总结200
第4章异步队列 Deferred Object201
4.1 jQuery.Callbacks flags 202
实现原理和总体结构204
源码分析205
小结219
4.2 jQuery.Deferred func 220
实现原理和总体结构223
源码分析224
小结232
4.3 jQuery.when deferreds 232
实现原理234
源码分析234
4.4 异步队列在 jQuery 中的应用237
4.5 总结238
第5章数据缓存 Data238
5.1 实现原理239
为 DOM 元素附加数据239
为 JavaScript 对象附加数据241
5.2 总体结构242
5.3 jQuery.acceptData elem 244
5.4 jQuery.data elem, name, data, pvt 、jQuery._data elem, name, data, pvt 245
如何使用245
源码分析246
jQuery._data elem, name, data 253
小结254
5.5 .data key, value 256
如何使用256
源码分析256
小结261
5.6 jQuery.removeData elem, name, pvt 、.removeData key 262
如何使用262
源码分析263
小结269
5.7 .removeData key 270
5.8 jQuery.cleanData elems 271
应用场景271
源码分析273
小结276
5.9 jQuery.hasData elem 277
5.10 总结278
第6章队列 Queue279
6.1 如何使用280
AJAX 队列280
动画队列 + AJAX 队列281
基于 JavaScript 对象281
6.2 实现原理282
6.3 总体结构282
6.4 jQuery.queue elem, type, data 284
6.5 jQuery.dequeue elem, type 286
6.6 .queue type, data 288
6.7 .dequeue type 290
6.8 .delay time, type 291
6.9 .clearQueue type 292
6.10 jQuery._mark elem, type 、jQuery._unmark force, elem, type 293
6.11 .promise type, object 295
如何使用295
实现原理296
源码分析297
handleQueueMarkDefer elem, type, src 299
6.12 总结301
第7章浏览器功能测试 Support302
7.1 总体结构302
7.2 DOM 测试15 项305
leadingWhitespace305
tbody307
Serialize309
hrefNormalized311
checkOn313
noCloneChecked315
optSelected318
optDisabled320
getSetAttribute322
deleteExpando326
enctype328
5Clone330
radioValue332
checkClone334
appendChecked337
7.3 样式测试3 项339
style339
opacity342
cssFloat346
7.4 盒模型测试10 项349
reliableMarginRight349
reliableHiddenOffsets352
boxModel355
inlineBlockNeedsLayout358
shrinkWrapBlocks361
doesNotAddBorder、doesAddBorderForTableAndCells365
fixedPosition369
subtractsBorderForOverflowNotVisible372
doesNotIncludeMarginInBodyOffset375
7.5 事件测试4 项378
noCloneEvent378
submitBubbles、changeBubbles、focusinBubbles381
7.6 Ajax 测试2 项383
ajax383
cors386
7.7 总结387
第8章属性操作 Attributes392
8.1 总体结构394
8.2 jQuery.attr elem, name, value, pass 395
源码分析396
boolHook400
nodeHook403
jQuery.attrHooks404
小结411
8.3 .attr name, value 412
8.4 jQuery.removeAttr elem, value 413
源码分析414
小结416
8.5 .removeAttr name 416
8.6 jQuery.prop elem, name, value 417
源码分析417
jQuery.propHooks420
小结421
8.7 .prop name, value 422
8.8 .removeProp name 423
8.9 .addClass className 424
源码分析425
小结427
8.10 .removeClass [className] 428
源码分析429
小结431
8.11 .toggleClass [className] [, switch] 432
源码分析432
小结435
8.12 .hasClass selector 436
源码分析436
小结437
8.13 .val [value] 437
源码分析438
jQuery.valHooks441
小结445
8.14 总结446
第9章事件系统 Events448
9.1 总体结构450
9.2 实现原理455
9.3 jQuery 事件对象457
构造函数 jQuery.Event src, props 459
原型对象
事件属性修正方法 event 466
9.4 绑定事件475
.on events [, selector] [, data] , handlereventObject 475
elem, types, handler, data, selector 479
9.5 移除事件491
.off events [, selector] [, handlereventObject] 491
elem, types, handler, selector, mappedTypes 495
9.6 事件响应504
主监听函数504
event 505
9.7 手动触发事件514
.trigger eventType [, extraParameters] 、.triggerHandler eventType [, extraParameters] 514
event, data, elem, onlyHandlers 515
9.8 事件修正和模拟
ready529
load530
focus、blur530
beforeunload531
mouseenter、mouseleave532
submit534
change537
focusin、focusout540
type, elem, event, bubble 541
9.9 事件便捷方法543
9.10 组合方法545
.toggle handlereventObject, handlereventObject [, handlereventObject] 545
.hoverhandlerIneventObject [, handlerOuteventObject] 546
9.11 ready 事件547
总体结构547
.ready handler 551
jQuery.bindReady551
jQuery.holdReady hold 556
jQuery.ready wait 557
9.12 总结559
第10章DOM 遍历 Traversing562
10.1 总体结构564
10.2 遍历函数566
10.3 工具函数569
jQuery.dir elem, dir, until 569
jQuery.nth cur, result, dir, elem 571
jQuery.sibling n, elem 572
10.4 模板函数574
10.5 总结576
第11章DOM 操作 Manipulation577
11.1 总体结构577
11.2 插入元素579
核心方法 .domManip args, table, callback 579
.append content [, content] 587
.prepend content [, content] 587
.before content [, content] 588
.after content [, content] 588
.appendTo target 、.prependTo target 、.insertBefore target 、.insertAfter target 589
.html [value] 590
.text [text] 595
11.3 删除元素598
.remove selector, keepData 598
.empty599
.detach selector 599
11.4 复制元素600
.clone dataAndEvents, deepDataAndEvents 600
jQuery.clone elem, dataAndEvents, deepDataAndEvents 601
cloneFixAttributes src, dest 606
11.5 替换元素609
.replaceWith value 609
.replaceAll target 612
11.6 包裹元素612
.wrapAll html 612
.wrapInner html 613
.wrap html 614
.unwrap615
11.7 总结615
第12章样式操作 CSS618
12.1 内联样式、计算样式619
总体结构619
.css name, value 621
jQuery.style elem, name, value, extra 622
jQuery.css elem, name, extra 628
curCSS elem, name 、getComputedStyle elem, name 、currentStyle elem, name 631
jQuery.cssHooks634
12.2 坐标 Offset643
总体结构643
.offset options 644
elem, options, i 650
body 654
.position655
.offsetParent656
.scrollLeft val 、.scrollTop val 657
12.3 尺寸 Dimensions659
总体结构659
getWH elem, name, extra 660
.innerHeight、.innerWidth664
.outerHeight margin 、.outerWidth margin 665
.height size 、.width size 666
小结670
12.4 总结671
第13章异步请求 Ajax673
13.1 总体结构674
13.2 jQuery.ajax url, options 677
13.3 前置过滤器、请求发送器的初始化和执行705
初始化706
执行709
13.4 前置过滤器713
json、jsonp713
script716
小结717
13.5 请求发送器718
script718
XMLHttpRequest722
小结733
13.6 数据转换器733
初始化734
执行736
小结741
13.7 Ajax 事件742
13.8 便捷方法744
jQuery.get url, data, callback, type 、jQuery.post url, data, callback, type 744
jQuery.getJSON url, data, callback 、jQuery.getScript url, callback 745
.load url, params, callback 745
13.9 工具方法750
.serialize750
jQuery.param a, traditional 751
.serializeArray756
13.10 总结757
第14章动画 Effects761
14.1 总体结构762
14.2 动画入口766
.animate prop, speed, easing, callback 766
jQuery.speed speed, easing, fn 769
doAnimation772
jQuery.fx elem, options, prop 778
.show779
.hide780
小结780
14.3 动画执行781
.custom from, to, unit 781
784
.step gotoEnd 785
jQuery.easing790
.update791

14.4 停止动画 .stop type, clearQueue, gotoEnd 793
14.5 便捷方法797
生成动画样式集 genFx type, num 797
显示隐藏 .show/hide/toggle798
渐显渐隐 .fadeIn/fadeOut/fadeTo/fadeToggle802
滑入滑出 .slideDwon/slidUp/slideToggle803
14.6 总结804
· · · · · ·