邊做邊學jQuery系列02 - 讓網頁jQuery起來

課程錄製時間: 2009年
讓網頁jQuery起來

要在網頁中使用jQuery是件簡單的事,首先介紹幾個有用的資源。

不能免俗地,當然先提jQuery的官方網站(http://www.jquery.com),官網上有完整的文件、教學、Plugin列表... 等等,也可以指引我們下載最新版本。

官方的API說明文件在改版後解說已比先前詳盡,但針對平日開發參考,我還大力推薦另一個好站: http://visualjquery.com!

Visual jQuery將API裡的各個函數分門別類,以階層方式編排整理,並且每個API都很用心地提供明確的範例,讓人更容易了解各函數的功用。網頁的操作界面支援動態層階式的展開、收合,方便函數尋找,想當然爾,這些網頁操作互動程式都是採用jQuery開發的。Visual jQuery網站在最近更新到1.2.6版,並新增了輸入關鍵字或選取第一個字母的查詢方式,十分方便好用,建議大家多多利用。

除了Visual jQuery可以提供API參考,依我自己的開發經驗,由於jQuery函數眾多,很難記憶完全,寫程式時常需要能快速獲得函數名稱、用法提示,因此手邊有一張速查表(Cheat Sheet,或叫"小抄"更傳神)是很重要的。網路上流傳的主要有兩個版本,黑白版(http://www.gscottolson.com/weblog/2008/01/11/jquery-cheat-sheet/)字體較小但資訊較詳細,彩色版(http://colorcharge.com/jquery/)字較大並有彩色,較賞心悅目。

【動手做看看】

好,讓我們開始第一個使用jQuery的網頁。在開始前,我們要先取得jquery.js(目前最新版是2009/1/14推出的1.3版,但檔案尚未齊備,此處仍以1.2.6版為例),由官網連結到下載頁面(http://docs.jquery.com/Downloading_jQuery),有幾個版本可供選擇:

  • Minified - 經過重新排版精簡化,去除不必要的註解、空白降低檔案大小,大小約54.5KB,由於比原始碼版本小很多,適合正式上線時使用。
  • Packed - 再進一步經過壓縮,大小只有30.3KB,但每次瀏覽器下載後要經過解壓縮的程序才能開始執行,適用於流量大、頻寬不足的場合。
  • Uncompressed - 未壓縮的原始程式碼版本,檔案約97.8KB,但排版上較易閱讀,開發測試期間建議使用,以利學習及偵錯。
  • Documentation - 配合Visual Studio 2008使用的Intellisense說明文字補充檔案,使用方法稍後再介紹。

在此,我們選擇jquery-1.2.6.js的未壓縮版,而jquery-1.2.6-vsdoc.js也一併下載回來備用。

第一個網頁很簡單,我們打算引用jQuery,並將其中的兩個<DIV>改成黑底白字。首先用Visual Studio 2008開啟一個網站專案,並建立js目錄,放入jquery-1.2.6.js,另外新增一個HTML網頁,進入原始碼編輯頁面,此時由右側Solution Explorer將jquery-1.2.6.js拖過來,VS2008會自動在網頁上產生<script src="js/jquery-1.2.6.js" type="text/javascript"></script>的引用標籤。

接著我們先在<body>中放入一個<div>First</div>,在其下方加入一段程式碼:

    <script type="text/javascript">
        $(function() {
            $("div").css("color", "red").width(100).text("Hello World");
        });
    </script>

這裡有個$(function() { .... })的寫法,其中包含的程式碼會在網頁載入後被呼叫(相當於<body onload="...">時觸發),原則上,會存取網頁元素的Javascript程式盡可能安排在網頁載入後再執行,否則有可能因為某些元素還沒有完全載入無法使用、或因載入期間變更HTML DOM而導致錯誤。jQuery裡每個事件都可以多重宣告,因此一個網頁中可以宣告多個$(function() { ... }),會依宣告先後依序執行。

$("div")的寫法是所有jQuery程式的基本出發點,意指利用"div"這個Selector去搜索所有符合的元素,組成一個陣列,接著我們便可以用串接的方式,逐一指定要陣列的每個元素進行什麼作業。在此,我們透過css()設定div.style.color = "red",指定div.style.width="100px",並更改div的內容文字為"Hello World"(真是老梗)。

【jQuery Intellisense】

在編輯的過程中,你可能已經發現VS2008的Javascript Intellisense在jQuery函數上也會發生作用,當我們輸入"$("後,VS2008會提示"$(selector, context)",美中不足的是,打完$("div")後,後面的".css(",".width("就不再觸發提示。

記得先前到的jquery-1.2.6-vsdoc.js嗎? 輪到它上場了!!

Visual Studio 2008本身具有Javascript Intellisense的功能,但在js必須添加額外的XML Documentation註解才能在顯示提示時附加說明文字。jQuery是獨立的Open Source Project,自然不該在核心中加入專屬特定開發工具的Code,因此在Visual Studio 2008裡除了jquery-1.2.6.js外,再另外多載入jquery-1.2.6-vsdoc.js,則-vsdoc檔案中的註釋就會發揮效果。瞧,加入vsdoc後,不但.css有了提示,甚至還有參數的細部說明呢!

不過,這裡有個小困擾! -vsdoc.js的內容只為了提供開發階段的文字說明,在實際傳到瀏覽器時不應載入,因此要設法將這段Code加上額外邏輯,使其只在編輯階段出現。如果是ASPX/PHP,可利用<% if (false) {%> <% } %>包出一段實際執行永遠被忽略、但編輯階段會讀取及執行的js。

<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/jquery-1.2.6-vsdoc.js"></script>

每次用到jQuery的地方都要來這麼一下有點煩人,於是微軟已經有了Hotfix。安裝後,VS2008會在每次載入js時,一併尋找同目錄下有沒有同名但後方多加-vsdoc的js檔案,若有則一併載入,因此我們只需將說明補充用的js取對名字,放在同一目錄下,餘下的事VS2008會替我們打理好,不用額外功夫就可以享用完整的函數說明提示了。

歡迎推文分享:



 
RSS
【工商服務】
OrcsWeb: Windows Server Hosting
twMVC

關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。