**
前言
jquery程式庫給前端開發帶來了一場風暴。它極其簡單的文法使曾經很複雜的任務變得輕松愉快。許多開發人員很快就為它的優雅和清晰而着迷。如果你已經開始使用這個程式庫,你就已經将豐富而具有互動性的體驗加入到你的項目中。
jquery的入門非常容易,但是和許多用于開發網站的工具一樣,完全體會到它的廣度和深度需要花費幾個月甚至幾年的時間。這個程式庫充滿了你從未想象過的特性。一旦你了解了這些特性,這些特性就能夠戲劇性地改變你解決問題的方法。
本書旨在向親愛的讀者展示業界領先的前端開發人員在日常項目中使用jquery的方式和方法。在18章中,這些業界精英将帶你經曆由簡到繁的各種問題的解決過程。不管你是jquery新手還是老練的javascript開發人員,都能夠對jquery建立引人注目、健壯和高性能的使用者界面的能力有全新的認識。
我們從基礎知識和通用最佳實踐的介紹開始——在頁面中包含jquery、做出選擇、周遊和操縱。即使常用jquery的使用者也能從中學到一兩個技巧。由此,我們轉向實際的用例,帶你經曆對常見問題的可靠(并且經過測試)的解決方案,這些問題包括事件、特效、尺寸、表單和使用者界面元素(可能需要或者不需要jquery ui的幫助)。最後,我們将研究jquery應用程式的測試以及将jquery內建到複雜網站的方法。
在學習的過程中,你将學習到利用jquery解決進階問題的政策。我們将研究如何最大限度地利用jquery的事件管理系統,包括自定義事件和自定義事件資料,如何漸進增強表單,如何在頁面上定位和重定位元素,如何從頭開始建立頁籤、折疊控件和模态等使用者界面元素,如何制作具備易讀性和可維護性的代碼,如何優化代碼以簡化測試、消除瓶頸和確定最高性能等。
因為這是一本“食譜”而非手冊,你當然可以選擇閱讀最适合自己的“菜單”[1];書中的每一個單獨的秘訣都物有所值。但是,本書自始自終提供的都是jquery社群中一些難得的絕妙解題方法。是以,我們希望你能至少從頭到尾浏覽一遍——你永遠不會知道,哪一行代碼能夠讓你茅塞頓開,使你的技巧更上一層樓。
jquery非常強調鍊式(chaining)文法——依次調用選擇元素的方法,确信每個方法都能傳回繼續工作所用的選擇元素。這種模式将在第1章中深入說明——如果你還不熟悉這個程式庫,就應該了解這個概念,因為在後續的章節中将會頻繁地用到它。
對jquery的功能做了一些簡單的分類:核心功能、選擇、操縱、周遊、css、屬性、事件、特效、ajax和工具。對這些分類和對應方法的學習,将極大地加強對書中内容的了解。
本書介紹的最佳實踐之一是在變量中存儲元素,而不是重複地進行相同的選擇。當選擇的元素存儲在變量中時,該變量一般以$字元開頭,表明它是一個 jquery對象。這樣的文法使代碼更容易閱讀和維護,但是應該了解,以$字元開頭的變量名稱并不是慣例,和php之類的語言不同,它在jquery中沒有特殊的意義。
一般來說,本書中的代碼示例重視清晰性和易讀性而不是簡潔性,是以示例比起絕對必需的代碼來說稍嫌冗長。如果你發現可以優化的地方,可以毫不猶豫地進行。同時,你也可以在自己的代碼中堅持清晰性和易讀性,然後使用代碼精簡工具準備用于生産環境的代碼。
**[第1章 jquery基礎
1.1.1 問題
1.1.2 解決方案
1.1.3 讨論
<a href="https://yq.aliyun.com/articles/97751">1.2 在dom加載之後、整個頁面加載之前執行jquery/javascript代碼</a>
1.2.1 問題
1.2.2 解決方案
1.2.3 讨論
<a href="https://yq.aliyun.com/articles/97756">1.3 用選擇器和jquery函數選擇dom元素</a>
1.3.1 問題
1.3.2 解決方案
1.3.3 讨論
<a href="https://yq.aliyun.com/articles/97760">1.4 在指定上下文中選擇dom元素</a>
1.4.1 問題
1.4.2 解決方案
1.4.3 讨論
<a href="https://yq.aliyun.com/articles/97764">1.5 過濾dom元素包裝器集</a>
1.5.1 問題
1.5.2 解決方案
1.5.3 讨論
<a href="https://yq.aliyun.com/articles/97767">1.6 查找目前選擇包裝器集中的後代元素</a>
1.6.1 問題
1.6.2 解決方案
1.6.3 讨論
<a href="https://yq.aliyun.com/articles/97774">1.7 傳回破壞性修改之前的選擇</a>
1.7.1 問題
1.7.2 解決方案
1.7.3 讨論
<a href="https://yq.aliyun.com/articles/97780">1.8 将前一個選擇集包含到目前選擇集</a>
1.8.1 問題
1.8.2 解決方案
1.8.3 讨論
<a href="https://yq.aliyun.com/articles/97789">1.9 根據目前上下文周遊dom獲得新的dom元素集</a>
1.9.1 問題
1.9.2 解決方案
1.9.3 讨論
<a href="https://yq.aliyun.com/articles/97793">1.10 建立、操作和插入dom元素</a>
1.10.1 問題
1.10.2 解決方案
1.10.3 讨論
<a href="https://yq.aliyun.com/articles/97800">1.11 删除dom元素</a>
1.11.1 問題
1.11.2 解決方案
1.11.3 讨論
<a href="https://yq.aliyun.com/articles/97804">1.12 替換dom元素</a>
1.12.1 問題
1.12.2 解決方案
1.12.3 讨論
<a href="https://yq.aliyun.com/articles/97809">1.13 克隆dom元素</a>
1.13.1 問題
1.13.2 解決方案
1.13.3 讨論
<a href="https://yq.aliyun.com/articles/97816">1.14 擷取、設定和删除dom元素屬性</a>
1.14.1 問題
1.14.2 解決方案
1.14.3 讨論
<a href="https://yq.aliyun.com/articles/97821">1.15 擷取和設定html内容</a>
1.15.1 問題
1.15.2 解決方案
1.15.3 讨論
<a href="https://yq.aliyun.com/articles/97828">1.16 擷取和設定文本内容</a>
1.16.1 問題
1.16.2 解決方案
1.16.3 讨論
<a href="https://yq.aliyun.com/articles/97833">1.17 在不造成全局沖突的情況下使用$别名</a>
1.17.1 問題
1.17.2 解決方案
1.17.3 讨論