基本介紹
內容簡介
jQuery基金會總裁Dave Methvin為本書作序;
jQuery是如今最受歡迎的JavaScript庫,開發人員藉助jQuery能夠更容易地編寫HTML客戶端腳本。jQuery提供了很多內置的功能,能夠用來遍歷和修改DOM,但是jQuery並不是萬能的。幸好,你可以利用jQuery大量的擴展點來自行創建選擇器和過濾器、外掛程式、動畫等。本書則告訴你如何實現jQuery的擴展。
本書講解了如何為jQuery庫創建自定義的擴展。讀者可以在本書中找到編寫外掛程式的方法,以及如何設計外掛程式,以滿足最大程度的復用。你還將學到如何為jQuery UI編寫新的小部件和特效。本書還講解了包括Ajax、事件、動畫和驗證等在內的關鍵領域的擴展。
本書內容:
創建jQuery UI小部件和特效;
創建可用於發布和重用的擴展;
自行創建庫。
本書假定讀者具有一定的jQuery和JavaScript使用經驗 ,但是讀者無需具備外掛程式編寫經驗和jQuery擴展編寫經驗。
作者簡介
Keith Wood有超過30年的開發經驗,他從2007年初開始對jQuery做出貢獻。他已經寫了超過20個外掛程式——包括最初的Datepicker、World Calendar和Datepicker、Countdown和SVG,並且把它們發布到了jQuery社區。他也經常在jQuery論壇上回答問題,並且成為了2012前五名的貢獻者。
在日常工作中,他是一個網站開發者,使用Java/J2EE開發後端,以及使用jQuery開發前端。他生活在澳大利亞的悉尼,與他的搭檔Trecialee一起利用業餘時間書寫了本書。
媒體推薦
“本書深入剖析了jQuery功能擴展的每一個方面。”
——Dave Methvin,jQuery基金會總裁
“所有Web開發人員的必讀圖書。”
——Ecil Teodoro,IBM
“對jQuery以及框架進行擴展的集大成者。”
——Daniel Midi,Whitelemon Design Studio
“寫作精良的jQuery技術圖書。”
——Brady Kelly,Erisia Web Development
圖書目錄
目 錄
第1部分 簡單的擴展
第1章 jQuery擴展 1
1.1 jQuery的背景 3
1.1.1 起源 4
1.1.2 發展 5
1.1.3 現狀 6
1.2 擴展jQuery 7
1.2.1 開發者可以擴展什麼 7
1.3 擴展的示例 10
1.3.1 jQuery UI 10
1.3.2 驗證 11
1.3.3 圖形幻燈片 12
1.3.4 集成谷歌地圖 13
1.3.5 Cookies 13
1.3.6 顏色動畫 14
1.4 總結 14
第2章 第一個外掛程式 16
2.1 jQuery的架構 16
2.1.1 jQuery的擴展點 18
2.1.2 選擇器 19
2.1.3 集合外掛程式 19
2.1.4 工具函式 20
2.1.5 jQuery UI小部件 20
2.1.6 jQuery UI特效 20
2.1.7 動畫屬性 21
2.1.8 Ajax處理 21
2.1.9 事件處理 22
2.1.10 驗證規則 22
2.2 一個簡單的外掛程式 22
2.2.1 占位文字 23
2.2.2 水印外掛程式的代碼 23
2.2.3 清除水印 25
2.2.4 使用水印外掛程式 25
2.3 總結 27
第3章 選擇器和過濾器 28
3.1 什麼是選擇器和過濾器 29
3.1.1 為什麼要添加新的選擇器 29
3.1.2 基本選擇器 29
3.1.3 偽類選擇器 31
3.2 添加一個偽類選擇器 33
3.2.1 一個偽類選擇器的結構 34
3.2.2 添加一個精確內容匹配選擇器 35
3.2.3 添加一個內容模式匹配選擇器 37
3.2.4 添加元素類型選擇器 38
3.2.5 添加一個外語選擇器 39
3.2.6 “驗證外掛程式”中的選擇器 40
3.3 添加一個集合過濾器 41
3.3.1 一個集合選擇器的結構 41
3.3.2 添加一個中間元素集合選擇器 42
3.3.3 增強索引選擇器 44
3.4 總結 45
第2部分 外掛程式和函式
第4章 外掛程式開發原則 49
4.1 外掛程式設計 49
4.1.1 外掛程式的好處 50
4.1.2 規劃設計 50
4.1.3 外掛程式模組化 51
4.2 指導原則 52
4.2.1 提供漸進增強 52
4.2.2 在所有地方使用唯一的名字 52
4.2.3 把一切都放在jQuery對象中 53
4.2.4 不要依賴$與jQuery的等同性 53
4.2.5 利用作用域隱藏實現細節 54
4.2.6 用“方法”調用附加功能 55
4.2.7 儘可能返回jQuery對象以便鏈式調用 55
4.2.8 使用data函式來存儲實例詳細信息 56
4.2.9 預估定製點 56
4.2.10 使用合理的默認值 57
4.2.11 允許本地化/地方化 58
4.2.12 用CSS控制外掛程式樣式 59
4.2.13 在主流瀏覽器中測試 61
4.2.14 創建可重複的測試用例集 61
4.2.15 提供示例和文檔 62
4.3 總結 64
第5章 集合外掛程式 65
5.1 什麼是集合外掛程式 65
5.2 一個外掛程式框架 66
5.2.1 MaxLength外掛程式 66
5.2.2 MaxLength外掛程式的操作 67
5.3 定義外掛程式 68
5.3.1 聲明一個命名空間 68
5.3.2 封裝 69
5.3.3 使用單例 69
5.4 附加到元素 71
5.4.1 基本的附加 71
5.4.2 外掛程式初始化 72
5.4.3 調用方法 73
5.4.4 取值方法 74
5.5 設定選項 76
5.5.1 外掛程式默認值 76
5.5.2 本地化/地方化 77
5.5.3 回響選項的變化 79
5.5.4 實現 MaxLength 的選項 80
5.5.5 啟用和禁用小部件 82
5.6 添加事件處理器 83
5.6.1 註冊一個事件處理器 83
5.6.2 觸發一個事件處理器 84
5.7 添加方法 84
5.8 移除外掛程式 85
5.9 收尾工作 86
5.9.1 外掛程式的主要部分 86
5.9.2 設定外掛程式樣式 88
5.10 完整的外掛程式 89
5.11 總結 91
第6章 函式外掛程式 92
6.1 定義外掛程式 93
6.1.1 本地化外掛程式 93
6.1.2 框架代碼 94
6.1.3 載入本地化檔案 94
6.2 jQuery Cookie外掛程式 97
6.2.1 Cookie的互動 97
6.2.2 讀寫cookie 98
6.3 總結 100
第7章 外掛程式的測試、打包和文檔 102
7.1 測試外掛程式 103
7.1.1 測試什麼 103
7.1.2 使用QUnit 104
7.1.3 測試MaxLength外掛程式 105
7.1.4 測試選項的設定和獲取 108
7.1.5 模擬用戶動作 109
7.1.6 測試事件回調 111
7.2 打包外掛程式 112
7.2.1 整理所有檔案 112
7.2.2 最小化外掛程式 113
7.2.3 提供一個基本示例 116
7.3 為外掛程式編寫文檔 118
7.3.1 選項文檔 118
7.3.2 方法和工具函式的文檔 119
7.3.3 演示外掛程式的功能 120
7.4 總結 121
第3部分 擴展jQuery UI
第8章 jQuery UI小部件 125
8.1 小部件框架 126
8.1.1 jQuery UI的模組 126
8.1.2 小部件模組 128
8.1.3 MaxLength外掛程式 128
8.1.4 MaxLength外掛程式的操作 129
8.2 定義小部件 130
8.2.1 聲明一個名字 130
8.2.2 封裝外掛程式 131
8.2.3 聲明這個小部件 131
8.3 把外掛程式附加到一個元素 133
8.4 處理外掛程式選項 134
8.4.1 小部件默認值 134
8.4.2 回響選項變化 135
8.4.3 實現MaxLength的選項 137
8.4.4 啟用和禁用小部件 140
8.5 添加事件處理器 140
8.5.1 註冊一個事件處理器 140
8.5.2 觸發一個事件處理器 141
8.6 添加方法 142
8.7 移除小部件 143
8.8 收尾 145
8.8.1 小部件主體 145
8.8.2 設定小部件樣式 147
8.9 完整的外掛程式 148
8.10 總結 150
第9章 jQuery UI的滑鼠互動 151
9.1 jQuery UI Mouse(滑鼠)模組 151
9.1.1 滑鼠拖動操作 152
9.1.2 滑鼠選項 153
9.2 定義小部件 153
9.2.1 簽名功能 153
9.2.2 Signature外掛程式的操作 154
9.2.3 聲明這個小部件 156
9.3 把外掛程式附加到一個元素上 157
9.3.1 框架初始化 157
9.3.2 自定義初始化 157
9.4 處理外掛程式選項 159
9.4.1 小部件默認值 159
9.4.2 設定選項 161
9.4.3 實現Signature選項 162
9.4.4 啟用和禁用小部件 162
9.5 添加事件處理器 163
9.5.1 註冊一個事件處理器 163
9.5.2 觸發一個事件處理器 164
9.6 與滑鼠互動 164
9.6.1 是否可以開始一個拖動 165
9.6.2 開始一個拖動 165
9.6.3 跟蹤一個拖動 166
9.6.4 結束一個拖動 166
9.7 添加方法 167
9.7.1 清除簽名 167
9.7.2 轉換為JSON 168
9.7.3 重新繪製簽名 169
9.7.4 檢查簽名是否存在 170
9.8 移除小部件 171
9.9 完整的外掛程式 172
9.10 總結 173
第10章 jQuery UI特效 174
10.1 jQuery UI特效框架 175
10.1.1 Effects Core模組 175
10.1.2 公共特效函式 176
10.1.3 已有特效 178
10.2 添加一個新特效 180
10.2.1 內爆一個元素 180
10.2.2 初始化特效 181
10.2.3 實現特效 183
10.2.4 在jQuery UI 1.9之前實現特效 184
10.2.5 完整的特效 185
10.3 緩動動畫 185
10.3.1 什麼是緩動 185
10.3.2 已有的緩動 187
10.3.3 添加一個新緩動 189
10.4 總結 191
第4部分 其他擴展
第11章 屬性的動畫 195
11.1 動畫框架 196
11.1.1 動畫功能 196
11.1.2 步進一個動畫 198
11.2 添加一個自定義屬性的動畫 200
11.2.1 background-position的動畫 200
11.2.2 聲明和獲取這個屬性值 201
11.2.3 更新屬性值 203
11.2.4 background-position在jQuery 1.7中的動畫 204
11.2.5 完整的外掛程式 205
11.3 總結 206
第12章 擴展Ajax 207
12.1 Ajax框架 208
12.1.1 預過濾器 209
12.1.2 傳輸器 209
12.1.3 轉換器 210
12.2 添加一個Ajax預過濾器 210
12.2.1 改變數據類型 211
12.2.2 禁用Ajax處理 211
12.3 添加一個Ajax傳輸器 212
12.3.1 載入圖像數據 212
12.3.2 為測試模擬HTML數據 214
12.4 添加一個Ajax轉換器 217
12.4.1 逗號分隔值(CSV)格式 217
12.4.2 把文本轉換為CSV 218
12.4.3 把CSV轉換為表格 220
12.5 Ajax外掛程式 222
12.6 總結 222
第13章 擴展事件 224
13.1 特殊事件框架 225
13.1.1 綁定事件處理器 225
13.1.2 觸發事件 226
13.2 添加一個特殊事件 227
13.2.1 添加一個右鍵單擊事件 227
13.2.2 禁用右擊事件 229
13.2.3 多個右擊事件 230
13.2.4 事件的集合函式 233
13.3 增強一個已有事件 234
13.4 事件的其他功能 236
13.4.1 事件的默認動作 236
13.4.2 派發前和派發後回調 237
13.4.3 阻止事件冒泡 238
13.4.4 自動綁定和代理 238
13.5 總結 239
第14章 創建驗證規則 241
14.1 Validation外掛程式 242
14.2 添加一個驗證規則 244
14.2.1 添加一個模式匹配規則 245
14.2.2 生成模式匹配規則 247
14.3 添加一個多欄位驗證規則 248
14.3.1 分組驗證 249
14.3.2 定義一個多欄位規則 249
14.4 總結 251
附錄A 正則表達式 253
辭彙表 261