1. 程式人生 > 其它 >jQuery Cheat—Sheet(jQuery學習筆記)

jQuery Cheat—Sheet(jQuery學習筆記)

jQuery Cheat—Sheet(jQuery學習筆記)

Web前端學習筆記之——jQuery學習筆記


什麼是jQuery?

jQuery是一種JavaScript庫,實現了常見任務的自動化和複雜任務簡單化。 jQuery庫為Web指令碼程式設計提供了通用的抽象層,使之適合任何指令碼程式設計情景。 jQuery能滿足以下需求:

取得文件中的元素、修改頁面外觀、改變文件內容、響應使用者的互動操作、為頁面新增動態效果、不重新整理載入、簡化常見的JavaScript任務。


jQuery版本?

jQuery 2.0 不再支援IE 6/7/8 了,但是 jQuery 1.9 會繼續支援

jQuery可以下載使用,有兩個版本的 jQuery 可供下載

  • jquery-X.X.X.min.js Production version - 用於實際的網站中,已被精簡和壓縮。
  • jquery-X.X.X.js Development version - 用於測試和開發(未壓縮,是可讀的程式碼)

使用jQuery

可以通過多種方法在網頁中新增 jQuery。 您可以使用以下方法:

  • 從 jquery.com 下載 jQuery 庫
  • 從 CDN 中載入 jQuery, 如從 Google 中載入 jQuery

本地jQuery

<head>
    <script src="jquery-1.10.2.min.js"></script>
    <!--Src 填寫本地下載的jquery路徑-->
 </head>

線上jQuery

<head>
    <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
    <!--百度CDN提供的線上jquery庫-->
</head>

jQuery語法

通過 jQuery,可以選取(查詢,query) HTML 元素,並對它們執行”操作”(actions)。

jQuery 語法

jQuery 語法是通過選取 HTML 元素,並對選取的元素執行某些操作。 基礎語法: $(selector).action()

  • 美元符號定義 jQuery
  • 選擇符(selector)”查詢”和”查詢” HTML 元素
  • jQuery 的 action() 執行對元素的操作

例項:

$(this).hide() - 隱藏當前元素
$("p").hide() - 隱藏所有 <p> 元素
$("p.test").hide() - 隱藏所有 class="test" 的 <p> 元素
$("#test").hide() - 隱藏所有 id="test" 的元素

文件就緒事件

所有 jQuery 函式位於一個 document ready 函式中:

$(document).ready(function(){

   // 開始寫 jQuery 程式碼...

});

這是為了防止文件在完全載入(就緒)之前執行 jQuery 程式碼。 如果在文件沒有完全載入之前就執行函式,操作可能失敗。下面是兩個具體的例子:

  • 試圖隱藏一個不存在的元素
  • 獲得未完全載入的影象的大小

提示:簡潔寫法(與以上寫法效果相同):

$(function(){

   // 開始寫 jQuery 程式碼...

});

以上兩種方式你可以選擇你喜歡的方式實現文件就緒後執行jQuery方法。


jQuery選擇元素

DOM-Document Object Model 文件物件模型 以樹狀表示的文件模型

為了建立jQuery物件,就用使用$()函式。函式接受CSS選擇符作為引數,充當一個工廠,返回包含頁面中對應元素的jQuery物件。jQuery物件選擇符有三種:標籤名、ID、類 可以單獨使用,也可以與其他選擇符組合使用

元素選擇器

jQuery 元素選擇器基於元素名選取元素。 在頁面中選取所有<p>元素:

$("p")

id選擇器

通過 id 選取元素語法如下:

$("#test")

.class 選擇器

jQuery 類選擇器可以通過指定的 class 查詢元素。

$(".test")

其他選擇器

混合選擇 eg:

$('#selected-plays > li')

子元素選擇符 > 查詢ID為selected-plays元素的子元素(>)中所有的列表項


jQuery 事件

什麼是事件?

頁面對不同訪問者的響應叫做事件。 事件處理程式指的是當 HTML 中發生某些事件時所呼叫的方法。

jQuery 事件方法語法

在 jQuery 中,大多數 DOM 事件都有一個等效的 jQuery 方法。

頁面中指定一個點選事件:

$("p").click();

下一步是定義什麼時間觸發事件。您可以通過一個事件函式實現:

$("p").click(function(){
  // 動作觸發後執行的程式碼!!
});

常用的 jQuery 事件方法

文件DOM載入完成

$(document).ready()

方法允許我們在文件完全載入完後執行函式。該事件方法在 jQuery 語法 章節中已經提到過。

點選事件

當點選元素是,會發生 click 事件。 在下面的例項中,當點選事件在某個 <p> 元素上觸發時,隱藏當前的<p>元素:

$("p").click(function(){
  $(this).hide();
});

雙擊事件

當雙擊元素時,會發生 dblclick 事件。 在下面的例項中,當雙擊事件在某個 <p> 元素上觸發時,隱藏當前的<p>元素:

$("p").dblclick(function(){
  $(this).hide();
});

滑鼠穿過事件

當滑鼠指標穿過元素時,會發生 mouseenter 事件。 在下面的例項中,當滑鼠穿過 <p1> 元素時,彈出“You entered p1!”警告框:

$("#p1").mouseenter(function(){
  alert("You entered p1!");
});

滑鼠離開事件

當滑鼠指標離開元素時,會發生 mouseleave 事件。 在下面的例項中,當滑鼠離開 <p1> 元素時,彈出“Bye! You now leave p1!”警告框:

$("#p1").mouseleave(function(){
  alert("Bye! You now leave p1!");
});

滑鼠移入並點選事件

當滑鼠指標移動到元素上方,並按下滑鼠按鍵時,會發生 mousedown 事件。 在下面例項中,滑鼠移入<p1>元素,並點選時,彈出“Bye! You now leave p1!”警告框:

$("#p1").mousedown(function(){
  alert("Mouse down over p1!");
});

滑鼠釋放事件

當在元素上鬆開滑鼠按鈕時,會發生 mouseup 事件。 在下面例項中,滑鼠點選<p1>元素,釋放時,彈出“Mouse up over p1!”警告框:

$("#p1").mouseup(function(){
  alert("Mouse up over p1!");
});

滑鼠經過懸停事件

hover()方法用於模擬游標懸停事件。 當滑鼠移動到元素上時,會觸發指定的第一個函式(mouseenter,); 當滑鼠移出這個元素時,會觸發指定的第二個函式(mouseleave)。 下面例項中,滑鼠移入<p1>元素時,觸發mouseenter,彈出“Mouse up over p1!”警告框; 滑鼠移出<p1>元素時,觸發mouseleave,彈出“Bye! You now leave p1!”警告框;

$("#p1").hover(function(){
  alert("You entered p1!");
  },
  function(){
  alert("Bye! You now leave p1!");
});

獲得焦點事件

當元素獲得焦點時,發生 focus 事件。 當通過滑鼠點選選中元素或通過 tab 鍵定位到元素時,該元素就會獲得焦點。 下面例項中,<input>元素獲得焦點,將其CSS樣式做出修改。

$("input").focus(function(){
  $(this).css("background-color","#cccccc");
});

失去焦點事件

當元素失去焦點時,發生 blur 事件。 下面例項中,<input>元素失去焦點,將其CSS樣式做出修改。

$("input").blur(function(){
  $(this).css("background-color","#ffffff");
});

其他jQuery事件


#jQuery 效果

隱藏和顯示

jQuery hide() 和 show()

jQuery hide() 和 show() 通過 jQuery,您可以使用 hide() 和 show() 方法來隱藏和顯示 HTML 元素:

//hide元素點選時隱藏<p>標籤
$("#hide").click(function(){
  $("p").hide();
});
//show元素點選時隱藏<p>標籤
$("#show").click(function(){
  $("p").show();
});

語法:

$(selector).hide(speed,callback);
$(selector).show(speed,callback);

可選的 speed 引數規定隱藏/顯示的速度,可以取以下值:”slow”、”fast” 或毫秒。 可選的 callback 引數是隱藏或顯示完成後所執行的函式名稱。 下面的例子演示了帶有 speed 引數的 hide() 方法:

$("button").click(function(){
  $("p").hide(1000);
});

jQuery toggle()

通過 jQuery,您可以使用 toggle() 方法來切換 hide() 和 show() 方法。 顯示被隱藏的元素,並隱藏已顯示的元素:

//點選button隱藏p標籤,再次點選顯示
$("button").click(function(){
  $("p").toggle();
});

淡入和淡出

jQuery fadeIn()

jQuery fadeIn() 用於淡入已隱藏的元素。 語法:$(selector).fadeIn(speed,callback);

可選的 speed 引數規定效果的時長。它可以取以下值:”slow”、”fast” 或毫秒。. 可選的 callback 引數是 fading 完成後所執行的函式名稱。

下面的例子演示了帶有不同引數的 fadeIn() 方法:

$("button").click(function(){
  $("#div1").fadeIn();   //淡入已經隱藏的div1
  $("#div2").fadeIn("slow");   //慢速淡入已經隱藏的div2
  $("#div3").fadeIn(3000);     //3000ms後完全淡入隱藏的div3
});

jQuery fadeOut()

jQuery fadeOut() 方法用於淡出可見元素。 語法:$(selector).fadeOut(speed,callback); 可選的 speed 引數規定效果的時長。它可以取以下值:”slow”、”fast” 或毫秒。 可選的 callback 引數是 fading 完成後所執行的函式名稱。 下面的例子演示了帶有不同引數的 fadeOut() 方法:

$("button").click(function(){
  $("#div1").fadeOut();   //淡出要隱藏的div1
  $("#div2").fadeOut("fast");   //快速淡出要隱藏的div2
  $("#div3").fadeOut(5000);     //5000ms後完全淡出要隱藏的div3
});

jQuery fadeToggle()

jQuery fadeToggle() 方法可以在 fadeIn() 與 fadeOut() 方法之間進行切換。

  • 如果元素已淡出,則 fadeToggle() 會向元素新增淡入效果。
  • 如果元素已淡入,則 fadeToggle() 會向元素新增淡出效果。

語法:$(selector).fadeToggle(speed,callback); 可選的 speed 引數規定效果的時長。它可以取以下值:”slow”、”fast” 或毫秒。 可選的 callback 引數是 fading 完成後所執行的函式名稱。 下面的例子演示了帶有不同引數的 fadeToggle() 方法:

$("button").click(function(){
  $("#div1").fadeToggle();    //若未隱藏,則淡出;若已隱藏,則淡入
  $("#div2").fadeToggle("slow");
  $("#div3").fadeToggle(3000);
});

jQuery fadeTo()

jQuery fadeTo() 方法允許漸變為給定的不透明度(值介於 0 與 1 之間)。 語法:$(selector).fadeTo(speed,opacity,callback);

  • 必需的 speed 引數規定效果的時長。它可以取以下值:”slow”、”fast” 或毫秒。
  • fadeTo() 方法中必需的opacity 引數將淡入淡出效果設定為給定的不透明度(值介於 0 與 1 之間)。
  • 可選的 callback引數是該函式完成後所執行的函式名稱。

下面的例子演示了帶有不同引數的 fadeTo() 方法:

$("button").click(function(){
  $("#div1").fadeTo("slow",0.15);   //慢速褪色到15%的透明度
  $("#div2").fadeTo("fast",0.4);    //快速褪色到40%的透明度

滑動效果

jQuery slideDown()

jQuery slideDown() 方法用於向下滑動元素。 語法:$(selector).slideDown(speed,callback);

  • 可選的 speed 引數規定效果的時長。它可以取以下值:”slow”、”fast” 或毫秒。
  • 可選的 callback引數是滑動完成後所執行的函式名稱。

下面的例子演示了 slideDown() 方法:

$("#flip").click(function(){
  $("#panel").slideDown();   //點選<flip>標籤之後,<panel>元素將會向下滑動顯示
});

jQuery slideUp()

jQuery slideUp() 方法用於向上滑動元素。 語法:$(selector).slideUp(speed,callback);

  • 可選的 speed 引數規定效果的時長。它可以取以下值:”slow”、”fast” 或毫秒。
  • 可選的 callback引數是滑動完成後所執行的函式名稱。

下面的例子演示了 slideUp() 方法:

$("#flip").click(function(){
  $("#panel").slideUp();     //點選<flip>標籤之後,<panel>元素將會向上滑動隱藏
});
``` 

#### jQuery slideToggle()
jQuery slideToggle() 方法可以在 slideDown() 與 slideUp() 方法之間進行切換。

 - 如果元素向下滑動,則 slideToggle() 可向上滑動它們。 
 - 如果元素向上滑動,則 slideToggle() 可向下滑動它們。

語法:`$(selector).slideToggle(speed,callback);`

 - 可選的 speed 引數規定效果的時長。它可以取以下值:"slow"、"fast" 或毫秒。 
 - 可選的 callback引數是滑動完成後所執行的函式名稱。

$(“#flip”).click(function(){
  $(“#panel”).slideToggle();  //若panel已經展開,則上滑隱藏;若已隱藏,則下滑展開
});

### 動畫 jQuery animate() 方法允許您建立自定義的動畫。 > **預設情況下,所有 HTML 元素都有一個靜態位置,且無法移動。 如需對位置進行操作,要記得首先把元素的 CSS position 屬性設定為 relative、fixed 或 absolute!** 可以用 animate() 方法來操作所有 CSS 屬性嗎? > 是的,幾乎可以!不過,需要記住一件重要的事情:當使用 animate() 時,必須使用 Camel 標記法書寫所有的屬性名,比如,必須使用paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。 #### jQuery animate() jQuery animate() 方法用於建立自定義動畫。 語法:`$(selector).animate({params},speed,callback);` - 必需的 params 引數定義形成動畫的 CSS 屬性。 - 可選的 speed - 引數規定效果的時長。它可以取以下值:"slow"、"fast" 或毫秒。 - 可選的 callback 引數是動畫完成後所執行的函式名稱。 下面的例子演示 animate() 方法的簡單應用。它把 <div> 元素往右邊移動了 250 畫素:

$(“button”).click(function(){
  $(“div”).animate({left:’250px’});   //將div向左移動250px
});

#### jQuery animate() - 操作多個屬性 請注意,生成動畫的過程中可同時使用多個屬性:

$(“button”).click(function(){
  $(“div”).animate({   //寫在{}中,屬性直接用半形,隔開
    left:’250px’,      //左移動250px
    opacity:’0.5’,     //透明度改變為50%
    height:’150px’,    //高度改變為150px
    width:’150px’      //寬度改變為150px
  });
});

#### jQuery animate() - 使用相對值 也可以定義相對值(該值相對於元素的當前值)。需要在值的前面加上 += 或 -=:

$(“button”).click(function(){
  $(“div”).animate({
    left:’250px’,     //左移動250px
    height:’+=150px’, //高度增加150px
    width:’+=150px’   //寬度增加150px
  });
});

#### jQuery animate() - 使用預定義的值 也可以把屬性的動畫值設定為 "show"、"hide" 或 "toggle":

$(“button”).click(function(){
  $(“div”).animate({
    height:’toggle’   //點選button,給div的height一個隱藏動畫效果
  });
});

#### jQuery animate() - 使用佇列功能 預設地,jQuery 提供針對動畫的佇列功能。 這意味著如果您在彼此之後編寫多個 animate() 呼叫, jQuery 會建立包含這些方法呼叫的"內部"佇列。然後逐一執行這些 animate 呼叫。

$(“button”).click(function(){
  var div=$(“div”);   //定義一個div 表示$(“div”) 對該元素有多個操作是的簡便寫法
  div.animate({height:’300px’,opacity:’0.4’},”slow”); //首先執行,高度增加到300px,透明度40%
  div.animate({width:’300px’,opacity:’0.8’},”slow”);  //然後執行,寬度增加到300px,透明度80%
  div.animate({height:’100px’,opacity:’0.4’},”slow”); //繼續執行,高度減少到100px,透明度40%
  div.animate({width:’100px’,opacity:’0.8’},”slow”);  //最後執行,寬度減少到100px,透明度80%
  //以從上到下的順序執行動畫佇列
});

### 停止動畫 jQuery stop() 方法用於停止動畫或效果,在它們完成之前。 stop() 方法適用於所有 jQuery 效果函式,包括滑動、淡入淡出和自定義動畫。 語法:`$(selector).stop(stopAll,goToEnd);` - 可選的 stopAll 引數規定是否應該清除動畫佇列。預設是false,即僅停止活動的動畫,允許任何排入佇列的動畫向後執行。 - 可選的goToEnd 引數規定是否立即完成當前動畫。預設是 false。 因此,預設地,stop() 會清除在被選元素上指定的當前動畫。

$(document).ready(function(){
  $(“#start”).click(function(){
    $(“div”).animate({left:’100px’},5000);    //動畫效果:div左移100px,
    $(“div”).animate({fontSize:’3em’},5000);  //內部文字的字型大小變為3em
  });
  $(“#stop”).click(function(){
    //無引數的暫停,一次點選,暫停一個animate動畫,點選兩次暫停兩個動畫
    $(“div”).stop();
  });
  $(“#stop2”).click(function(){
    //stopAll引數為true,暫停所有animate動畫
    $(“div”).stop(true);
  });
  $(“#stop3”).click(function(){
    //stopAll引數為true,goToEnd引數為true,暫停所有animate動畫,並直接顯示結果
    $(“div”).stop(true,true);
  });
});

### jQuery Callback 回撥 **Callback 函式在當前動畫 100% 完成之後執行。** jQuery 動畫的問題 > 許多 jQuery 函式涉及動畫。這些函式也許會將 speed 或 duration 作為可選引數。 例子:`$("p").hide("slow")` speed 或 duration 引數可以設定許多不同的值,比如 "slow","fast", "normal" 或毫秒。 **以下例項在隱藏效果完全實現後回撥函式:**

$(“button”).click(function(){
  $(“p”).hide(“slow”,function(){
    alert(“The paragraph is now hidden”);
  });
});

**沒有回撥函式(Callback)**

$(“button”).click(function(){
  $(“p”).hide(1000);
  alert(“The paragraph is now hidden”);   //警告框將在隱藏效果之前彈出
});

#jQuery - Chaining 通過 jQuery,可以把動作/方法連結在一起。 **Chaining 允許我們在一條語句中執行多個 jQuery 方法**(在相同的元素上) ### jQuery 方法連結 有一種名為連結(chaining)的技術,允許我們在相同的元素上執行多條 jQuery 命令,一條接著另一條。 提示: 這樣的話,**瀏覽器就不必多次查詢相同的元素**。 如需連結一個動作,您只需簡單地把該動作追加到之前的動作上。 下面的例子把 css()、slideUp() 和 slideDown() 連結在一起。"p1" 元素首先會變為紅色,然後向上滑動,再然後向下滑動:

$(“#p1”).css(“color”,”red”).slideUp(2000).slideDown(2000);

如果需要,我們也可以新增多個方法呼叫。 提示: > 當進行連結時,程式碼行會變得很差。不過,jQuery語法很寬鬆;可以按照希望的格式來寫,包含換行和縮排。 如下書寫也可以很好地執行:

$(“#p1”).css(“color”,”red”)
  .slideUp(2000)
  .slideDown(2000);

jQuery 會拋掉多餘的空格,並當成一行長程式碼來執行上面的程式碼行。 #jQuery 獲取內容和屬性 jQuery 擁有可操作 HTML 元素和屬性的強大方法。 ### jQuery DOM 操作 jQuery 中非常重要的部分,就是操作 DOM 的能力。 jQuery 提供一系列與 DOM 相關的方法,這使訪問和操作元素和屬性變得很容易。 > **DOM = Document Object Model(文件物件模型)** DOM 定義訪問 HTML 和 XML文件的標準: "W3C文件物件模型獨立於平臺和語言的介面,允許程式和指令碼動態訪問和更新文件的內容、結構以及樣式。" #### 獲得內容 - text()、html() 以及 val() 三個簡單實用的用於 DOM 操作的 jQuery 方法: - text() - 設定或返回所選元素的文字內容 - html() - 設定或返回所選元素的內容(包括 HTML 標記) - val() - 設定或返回表單欄位的值 下面的例子演示如何通過 jQuery text() 和 html() 方法來獲得內容:

$(“#btn1”).click(function(){
  alert(“Text: “ + $(“#test”).text());   //警告框彈出test內的文字內容
});
$(“#btn2”).click(function(){
  alert(“HTML: “ + $(“#test”).html());  //警告框彈出test內的html程式碼
});

下面的例子演示如何通過 jQuery val() 方法獲得輸入欄位的值:

$(“#btn1”).click(function(){
  alert(“值為: “ + $(“#test”).val());   //警告框彈出test 標籤輸入的文字值
});

#### 獲取屬性 - attr() jQuery attr() 方法用於獲取屬性值。 下面的例子演示如何獲得連結中 href 屬性的值:

$(“button”).click(function(){
  alert($(“#derwer”).attr(“href”));  //警告框彈出 derwer 標籤的 href 屬性
});

#jQuery 設定內容和屬性 ### 設定內容 - text()、html() 以及 val() 我們將使用前一章中的三個相同的方法來設定內容: - text() - 設定或返回所選元素的文字內容 - html() - 設定或返回所選元素的內容(包括 HTML 標記) - val() - 設定或返回表單欄位的值 下面的例子演示如何通過 text()、html() 以及 val() 方法來設定內容:

$(“#btn1”).click(function(){
    $(“#test1”).text(“Hello world!”);   //設定text1的值為 “Hello world!”
});
$(“#btn2”).click(function(){
    $(“#test2”).html(“Hello world!“);   //設定text2的HTML程式碼為 “Hello world!“
});
$(“#btn3”).click(function(){
    $(“#test3”).val(“DERWER”);   //設定test的輸入框內容為 DERWER
});
```