目 錄
第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
· · · · · · (
收起)