從零開始學習jQuery (一) 入門篇

来源:http://www.cnblogs.com/wzhiq896/archive/2016/10/16/5967478.html
-Advertisement-
Play Games

本系列文章導航 從零開始學習jQuery (一) 入門篇 一.摘要 本系列文章將帶您進入jQuery的精彩世界, 其中有很多作者具體的使用經驗和解決方案, 即使你會使用jQuery也能在閱讀中發現些許秘籍. 本篇文章是入門第一篇, 主要是簡單介紹jQuery, 通過簡單示例指導大家如何編寫jQuer ...


本系列文章導航

從零開始學習jQuery (一) 入門篇

 

一.摘要

本系列文章將帶您進入jQuery的精彩世界, 其中有很多作者具體的使用經驗和解決方案,  即使你會使用jQuery也能在閱讀中發現些許秘籍.

本篇文章是入門第一篇, 主要是簡單介紹jQuery, 通過簡單示例指導大家如何編寫jQuery代碼以及搭建開發環境. 詳細講解瞭如何在Visual Studio中配合使用jQuery.

 

二.前言

 

三.什麼是jQuery

jQuery是一套Javascript腳本庫.  Javascript腳本庫類似於.NET的類庫, 我們將一些工具方法或對象方法封裝在類庫中, 方便用戶使用.

註意jQuery是腳本庫, 而不是腳本框架. "庫"不等於"框架", 比如"System程式集"是類庫,而"ASP.NET MVC"是框架. jQuery並不能幫助我們解決腳本的引用管理和功能管理,這些都是腳本框架要做的事.

腳本庫能夠幫助我們完成編碼邏輯,實現業務功能. 使用jQuery將極大的提高編寫javascript代碼的效率, 讓寫出來的代碼更加優雅, 更加健壯. 同時網路上豐富的jQuery插件也讓我們的工作變成了"有了jQuery,天天喝茶水"--因為我們已經站在巨人的肩膀上了.

創建一個ASP.NET MVC項目時, 會發現已經自動引入了jQuery類庫. jQuery幾乎是微軟的御用腳本庫了!完美的集成度和智能感知的支持,讓.NET和jQuery天衣無縫結合在一起!所以用.NET就要選用jQuery而非Dojo,ExtJS等.

jQuery有如下特點:

1.提供了強大的功能函數

使用這些功能函數, 能夠幫助我們快速完成各種功能, 而且會讓我們的代碼異常簡潔.

2.解決瀏覽器相容性問題

javascript腳本在不同瀏覽器的相容性一直是Web開發人員的噩夢,  常常一個頁面在IE7,Firefox下運行正常, 在IE6下就出現莫名其妙的問題. 針對不同的瀏覽器編寫不同的腳本是一件痛苦的事情. 有了jQuery我們將從這個噩夢中醒來, 比如在jQuery中的Event事件對象已經被格式化成所有瀏覽器通用的, 從前要根據event獲取事件觸發者, 在ie下是event.srcElements 而ff等標準瀏覽器下下是event.target. jQuery則通過統一event對象,讓我們可以在所有瀏覽器中使用event.target獲取事件對象.

3.實現豐富的UI

jQuery可以實現比如漸變彈出, 圖層移動等動畫效果, 讓我們獲得更好的用戶體驗. 單以漸變效果為例, 從前我自己寫了一個可以相容ie和ff的漸變動畫, 使用大量javascript代碼實現, 費心費力不說, 寫完後沒有太多幫助過一段時間就忘記了. 再開發類似的功能還要再次費心費力. 如今使用jQuery就可以幫助我們快速完成此類應用.

4.糾正錯誤的腳本知識

這一條是我提出的, 原因就是大部分開發人員對於javascript存在錯誤的認識. 比如在頁面中編寫載入時即執行的操作DOM的語句, 在HTML元素或者document對象上直接添加"onclick"屬性,  不知道onclick其實是一個匿名函數等等.  擁有這些錯誤腳本知識的技術人員也能完成所有的開發工作, 但是這樣的程式是不健壯的. 比如"在頁面中編寫載入時即執行的操作DOM的語句", 當頁面代碼很小用戶載入很快時沒有問題, 當頁面載入稍慢時就會出現瀏覽器"終止操作"的錯誤.jQuery提供了很多簡便的方法幫助我們解決這些問題, 一旦使用jQuery你就將糾正這些錯誤的知識--因為我們都是用標準的正確的jQuery腳本編寫方法!

5.太多了! 等待我們一一去發現.

 

四.Hello World jQuery

按照慣例, 我們來編寫jQuery的Hello World程式, 來邁出使用jQuery的第一步.

在本文最後可以下本章的完整源代碼.

1.下載jQuery類庫

jQuery的項目下載放在了Google Code上, 下載地址:

http://code.google.com/p/jqueryjs/downloads/list

上面的地址是總下載列表, 裡面有很多版本和類型的jQuery庫, 主要分為如下幾類:

min: 壓縮後的jQuery類庫,  在正式環境上使用.如:jquery-1.3.2.min.js

vsdoc: 在Visual Studio中需要引入此版本的jquery類庫才能啟用智能感知.如:jquery-1.3.2-vsdoc2.js

release包: 裡面有沒有壓縮的jquery代碼, 以及文檔和示常式序. 如:jquery-1.3.2-release.zip

2.編寫程式

創建一個HTML頁面, 引入jQuery類庫並且編寫如下代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Hello World jQuery!</title>
    <script type="text/javascript" src="scripts/jquery-1.3.2-vsdoc2.js"></script>
</head>
<body>
    <div id="divMsg">Hello World!</div>
    <input id="btnShow" type="button" value="顯示" />
    <input id="btnHide" type="button" value="隱藏" /><br />
    <input id="btnChange" type="button" value="修改內容為 Hello World, too!" />
    <script type="text/javascript" >
        $("#btnShow").bind("click", function(event) { $("#divMsg").show(); });
        $("#btnHide").bind("click", function(event) { $("#divMsg").hide(); });
        $("#btnChange").bind("click", function(event) { $("#divMsg").html("Hello World, too!"); });      
    </script>
</body>
</html>

效果如下:

image

頁面上有三個按鈕, 分別用來控制Hello World的顯示,隱藏和修改其內容.

此示例使用了:

(1) jQuery的Id選擇器: $("#btnShow")

(2) 事件綁定函數 bind()

(3) 顯示和隱藏函數. show()和hide()

(4) 修改元素內部html的函數html()

在接下來的教程中我們將深入這些內容的學習.

 

五.啟用Visual Studio 對jQuery的智能感知

首先看一下Visual Studio帶給我們的智能感知驚喜. 要讓Visual Studio支持智能感知, 需要下列條件:

  • 安裝 VS2008 SP1 
    下載地址: http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx 
  • 安裝VS 2008 Patch KB958502以支持"-vsdoc.js"Intellisense文件. 
    該補丁會導致Visual Studio在一個JavaScript庫被引用時,查找是否存在一個可選的"-vsdoc.js"文件,如果存在的話,就用它來驅動JavaScript intellisense引擎。這些加了註釋的"-vsdoc.js"文件可以包含對JavaScript方法提供了幫助文檔的XML註釋,以及對無法自動推斷出的動態JavaScript簽名的另外的代碼intellisense提示。你可以在"這裡"瞭解該補丁的詳情。你可以在"這裡"免費下載該補丁。 
  • 必須要引用vsdoc版本的jquery庫 
    <script type="text/javascript" src="scripts/jquery-1.3.2-vsdoc2.js"></script>


在編寫腳本的時候, 甚至剛剛輸入"$"的時候,VS可以智能提示:

image

在使用方法時, 還會有更多的提示:

image

 

有了智能感知我們編寫javascript變得和C#一樣快速,便捷,舒服.大部分情況可以一次編寫成功而不用再為了一個大小寫而查詢javascript幫助文件.能夠讓Visual Studio對jQuery實現智能感知的前提是要引入vsdoc版本的jQuery類庫. 示例中我們引入了"jquery-1.3.2-vsdoc2.js"文件. 如果引用其他版本比如min版本的jQuery類庫就無法啟用智能提示.但是在正式環境下, 我們必須要使用"min"版本的jquery庫文件, 以1.3.2版本號為例,各個版本的大小如下:

image

其中第一個是未壓縮的jquery庫. 如果啟用gzip壓縮並且使用min版本的jquery.js可以在傳輸過程中壓縮到19KB.

註意,如果我們更新了腳本, 可以通過"Ctrl+Shift+J"快捷方式更新Visual Studio的智能感知,或者單擊 編輯->IntelliSense->更新JScript Intellisense:

image

為了即能在Visual Studio中增加腳本提示, 又能在上線的時候使用min版本的腳本庫, 我們一般是用如下方式引入jQuery庫:

1. 控制編譯結果

    <script type="text/javascript" src="scripts/jquery-1.2.6.min.js"></script>
    <%if (false)
      { %>
    <script type="text/javascript" src="scripts/jquery-1.3.2-vsdoc2.js"></script>    
    <%} %>

這是網上推薦的方式. 編譯後的頁面上只有min版本的引用, 同時在開發時能夠享受到智能感知.但是註意這種方式引用的min類庫只能是1.2.6或者之前的版本號. 最新的1.3.2的所有非vsdoc版本的jquery庫引用後都會導致JScript Intellisense更新出錯. 這是1.3.2版本的一個bug, 期待後續版本中解決. 其實大家完全可以使用1.2.6版本的min庫, 本教程涉及的jquery功能, 1.2.6版本基本都支持.

我們使用了if(false)讓編譯後的頁面不包含vsdoc版本jquery庫的引用, 同樣的思路還可以使用比如將腳本引用放入一個PlaceHolder並設置visible=fasle等.

2. 使用後端變數

為了能使用 1.3.2 版本的min庫, 我們只能通過將腳本引用放在變數里, 通過頁面輸出的方式, 此種方式可以正常更新JScript Intellisense.但是可能有人和我一樣不喜歡在前端使用變數:

    <asp:PlaceHolder Visible="false" runat="server">
        <script type="text/javascript" src="scripts/jquery-1.3.2-vsdoc2.js"></script>
    </asp:PlaceHolder>
    <% =jQueryScriptBlock %>


後臺聲明變數:

protected string jQueryScriptBlock = @"<script type=""text/javascript"" src=""scripts/jquery-1.3.2.min.js""></script>";
 


 

 

六.在獨立的.JS文件中啟用腳本智能感知

上面我們解決了在頁面中智能感知的問題, 其實在獨立的.js文件中我們同樣可以啟用腳本的智能感知, 在IntellisenseDemo.js文件中,添加如下語句:

/// <reference path="jquery-1.3.2-vsdoc2.js" />
 

更新JScript Intellisense, 會發現在腳本中也啟用了智能提示:

 

image

註意,本文中講解的腳本智能感知不僅適用於jQuery類庫, 還適用於自己編寫的javascript代碼. 

 

七.總結

本文簡單介紹了jQuery, 以及如何搭建腳本開發環境. 示常式序沒有複雜的功能, 可能還無法讓沒有接觸過jQuery的人認識到它的強大.但是僅憑藉"多瀏覽器支持"這一特性, 就足以讓我們學習並使用jQuery, 因為如今想編寫跨瀏覽器的腳本真的是一件困難的事情!

在後續文章中我們將深入學習jQuery選擇器, 事件, 工具函數, 動畫, 以及插件等.

本文代碼下載:

http://files.cnblogs.com/zhangziqiu/Code-jQueryStudy-1.rar


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 【Python練習題 016】 猴子吃桃問題:猴子第一天摘下若幹個桃子,當即吃了一半,還不癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 這題得倒著推。第10天還沒吃,就剩1 ...
  • 淺析設計模式中的策略模式,包含原理解讀和具體案例代碼的實現。僅為個人學習總結分享,希望圍觀者多提意見。 ...
  • 上一次的《微信小程式之小豆瓣圖書》製作了一個圖書的查詢功能,只是簡單地應用到了網路請求,其他大多數小程式應有的知識。而本次的示例是`知乎日報`,功能點比較多,頁面也比上次複雜了許多。在我編寫這個DEMO之前,網上已經有很多網友弄出了相同的DEMO,也是非常不錯的,畢竟這個案例很經典,有比較完整的AP... ...
  • 一、css文本屬性 (1)文本大小{font-size:value;} 單位:pt:9pt=12px;瀏覽器預設字體大小為16px em:1em=16px; 在CSS2.0中 xx-small:9px x-small:11px small:13px medium:16px large:19px x- ...
  • 上一文章是擴展ExtJS自帶的Date組件。在這裡將創建一個評分組件。 ...
  • 字體絕對是每一個設計非常重要的部分,設計者總是希望有最好的免費字體,以保持他們字體庫的更新。所以今天我要向設計師們分享一組用於簡潔網頁設計的光滑英文字體。這些免費的字體是適用於各種類型的設計,除了網頁,還有海報、標誌、印刷廣告等。 ...
  • 今天的這篇文章還是一篇“Hello World”,只不過開發環境有所改變——Visual Studio Code+Angular2+Webapck,也算是正式的開篇了。 一、新建一個文件夾作為此次Demo的根目錄,這裡為:“F:\Visual Studio Code\app1”,併在“命令提示符中打 ...
  • AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML)。 個人理解:ajax就是無刷新提交,然後得到返回內容。 對應的不使用ajax時的傳統網頁如果需要更新內容(或用php做處理時),必須重載整個網頁頁面。 示例: html代碼如下 ./te ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...