咩星征服計劃 用 js 征服地球 part ii

85

Click here to load reader

Upload: -lamb-mei

Post on 09-May-2015

451 views

Category:

Technology


2 download

DESCRIPTION

jQuery 教學

TRANSCRIPT

Page 1: 咩星征服計劃 用 Js 征服地球 Part II

咩星征服計劃

用 JS 征服地球 Part II

Page 3: 咩星征服計劃 用 Js 征服地球 Part II

Time of use

Page 4: 咩星征服計劃 用 Js 征服地球 Part II

19:00 – 22:00

圖片來源 mtmorriscommunitychurch

Page 5: 咩星征服計劃 用 Js 征服地球 Part II

course content

Page 6: 咩星征服計劃 用 Js 征服地球 Part II

course content

• jQuery Introduction • jQuery Seletor• jQuery API• Javascript Online

Page 7: 咩星征服計劃 用 Js 征服地球 Part II

jQuery Introduction

Page 8: 咩星征服計劃 用 Js 征服地球 Part II

jQuery Introduction

圖片來源 http://jquery.com/

What is jQuery

Page 9: 咩星征服計劃 用 Js 征服地球 Part II

jQuery Introduction - What is jQuery

圖片來源 http://jquery.com/

jQuery 是一個快速,體積小,功能豐富的JavaScript Lib 。

易於使用的 API 處理 HTML DOM 遍歷操作,事件處理,動畫和 Ajax ,並簡單處理多種瀏覽器的問題。

Page 10: 咩星征服計劃 用 Js 征服地球 Part II

jQuery Introduction - download

http://jquery.com/download/

版本1.9.x此版本很多舊方法因效能問題被棄用,若有使用套件請注意套件使用版本1 .10.x不使用舊方法可使用最心版本2.x不支援 IE 6 7 8

Page 11: 咩星征服計劃 用 Js 征服地球 Part II

jQuery Introduction – 如何運作

$("div").addClass("special");

Page 12: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 – 如何運作

$("div").addClass("special");

選取的元素

Page 13: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 – 如何運作

$("div").addClass("special");

選取的元素

要做的事情

Page 14: 咩星征服計劃 用 Js 征服地球 Part II

jQuery Selector

Page 15: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

$( 您想選擇的元素 )

Page 16: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

Page 17: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("div")

選取所有 DIV

Page 18: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("#body")

取 id 為 body 的元素

Page 19: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("div#body")

選取 id 為 body 的 <div>

Page 20: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$(".contents")

選取 class 為 contents 的元素

Page 21: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("div.contents p")

選取 class 為 contents 的 <div> 底下任何一 層的 <p>

Page 22: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("div > div")

選取被 <div> 包住的下一層 <div>

Page 23: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("div:has(div)")

和前一個範例相反 選取至少有包住一個 <div> 的 <div>

Page 24: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("div[id]")

查找所有含有 id 属性的 div元素

Page 25: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 –選取元素

<div id="body"> <h2>Some Header</h2> <div class="contents"> <p>...</p> <p>...</p> </div> </div>

$("div[class='contents']")

查找屬性 class 為 contents 的 div 元素。

Page 26: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 – Ready 事件

jQuery Ready 是 DOMContentLoaded

Page 27: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 – Ready 事件

jQuery Ready 是 DOMContentLoaded

DOMContentLoaded 當準備好 DOM Tree 就會觸發

Page 28: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 – Ready 事件

jQuery Ready 是 DOMContentLoaded

DOMContentLoaded 當準備好 DOM Tree 就會觸發

window.onload所有文件內的元件,包含圖檔等等全部下載完成後才會觸發

Page 29: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 – Ready 事件

$(document).ready(function() {

//do something});

Page 30: 咩星征服計劃 用 Js 征服地球 Part II

jQuery 基礎 – Ready 事件

$(function() {//do something

});

縮寫

Page 31: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API

Page 32: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX

Page 33: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes

Page 34: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes• CSS

Page 35: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes• CSS• Data

Page 36: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes• CSS• Data• Effects

Page 37: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes• CSS• Data• Effects

• Events

Page 38: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes• CSS• Data• Effects

• Events• Forms

Page 39: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes• CSS• Data• Effects

• Events• Forms• Traversing

Page 40: 咩星征服計劃 用 Js 征服地球 Part II

Category

jQuery API

• AJAX• Attributes• CSS• Data• Effects

• Events• Forms• Traversing• Selectors

Page 41: 咩星征服計劃 用 Js 征服地球 Part II

API 查詢jQuery API

http://api.jquery.com/

Page 42: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API

http://jqapi.com/

API 查詢

Page 43: 咩星征服計劃 用 Js 征服地球 Part II

Do Someting

jQuery API

Page 44: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.show()

.hide()

.toggle()

Page 45: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.show()

顯示元素

.hide()

.toggle()

Page 46: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.show()

顯示元素

.hide()

隱藏元素

.toggle()

Page 47: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.show()

顯示元素

.hide()

隱藏元素

.toggle()

切換顯示或隱藏

Page 48: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.css()

.addClass()

.removeClass()

. toggleClass()

Page 49: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.css()設定樣式

.addClass()

.removeClass()

. toggleClass()

Page 50: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.css()設定樣式

.addClass()

新增 class

.removeClass()

. toggleClass()

Page 51: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.css()設定樣式

.addClass()

新增 class

.removeClass()

移除 class

. toggleClass()

Page 52: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.css()設定樣式

.addClass()

新增 class

.removeClass()

移除 class

. toggleClass()切換 class

Page 53: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

. append()

.html()

.text()

Page 54: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

. append()設定樣式

.html()

.text()

Page 55: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

. append()設定樣式

.html()

設定 html

.text()

Page 56: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

. append()設定樣式

.html()

設定 html

.text()

設定 Text 標籤語言無效只當作文字

Page 57: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.click()

.bind()

Page 58: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.click()點擊事件

.bind()

Page 59: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

.click()點擊事件

.bind()

綁定事件

.unbind()

移除綁定事件

Page 60: 咩星征服計劃 用 Js 征服地球 Part II

example

jQuery API

Page 61: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取最後一個 <p> ,並且修 class 屬性

原始的 HTML

<p>Hello</p><p>and</p><p>Goodbye</p>

Page 62: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取最後一個 <p> ,並且修 class 屬性

原始的 HTML

<p>Hello</p><p>and</p><p>Goodbye</p>

$( "p:last" ).addClass( "selected highlight" );

Page 63: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取最後一個 <p> ,並且修 class 屬性

執行結果的 HTML

<p>Hello</p><p>and</p><p class="selected highlight">Goodbye</p>

$( "p:last" ).addClass( "selected highlight" );

Page 64: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取 id 為 contents 的元素,並且修 css 屬性

<div id="contents"> ... </div>

原始的 HTML

Page 65: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

<div id="contents"> ... </div>

選取 id 為 contents 的元素,並且修 css 屬性

原始的 HTML

$("#contents").css({ border: “2px solid red", height: “60px" });

Page 66: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

<div id="contents” style="border: 2px solid red; height: 60px" > ... </div>

選取 id 為 contents 的元素,並且修 css 屬性

執行結果的 HTML

$("#contents").css({ border: “2px solid red", height: “60px" });

Page 67: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

<a href="http://homakimi.com">Homakimi</a> <a href="http://google.com" target="_blank">Google</a> <a href="http://yahoo.com" target="_blank">Yahoo</a>

選取所有有 target 屬性的<a> 並且在其節點下加入一段文字

原始的 HTML

Page 68: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

$("a[target]").append(" (blank)");

<a href="http://homakimi.com">Homakimi</a> <a href="http://google.com" target="_blank">Google</a> <a href="http://yahoo.com" target="_blank">Yahoo</a>

選取所有有 target 屬性的<a> 並且在其節點下加入一段文字

原始的 HTML

Page 69: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

$("a[target]").append(" (blank)");

<a href="http://homakimi.com">Homakimi</a> <a href="http://google.com" target="_blank">Google (blank)</a> <a href="http://yahoo.com" target="_blank">Yahoo (blank)</a>

選取所有有 target 屬性的<a> 並且在其節點下加入一段文字

執行結果的 HTML

Page 70: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

<span>Hello</span><div></div>

選取<div> 並修改 HTML

原始的 HTML

Page 71: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

$( "div" ).html( "<span class='red'>Hello <b>Again</b></span>" );

<span>Hello</span><div></div>

選取<div> 並修改 HTML

原始的 HTML

Page 72: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

$( "div" ).html( "<span class='red'>Hello <b>Again</b></span>" );

<span>Hello</span><div><span class='red'>Hello <b>Again</b></span></div>

選取<div> 並修改 HTML

執行結果的 HTML

Page 73: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

<span>Hello</span><div></div>

選取<div> 並修改 Text

原始的 HTML

Page 74: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

<span>Hello</span><div></div>

選取<div> 並修改 Text

原始的 HTML

$( "div" ).text( "<span class='red'>Hello <b>Again</b></span>" );

Page 75: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取<div> 並修改 Text

$( "div" ).text( "<span class='red'>Hello <b>Again</b></span>" );

執行結果的 HTML

<span>Hello</span><div>&lt;span class='red'&gt;Hello &lt;b&gt;Again&lt;/b&gt;&lt;/span&gt;</div>

Page 76: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取<div> 並修改 Text

$( "div" ).text( "<span class='red'>Hello <b>Again</b></span>" );

執行結果的 HTML

<span>Hello</span><div>&lt;span class='red'&gt;Hello &lt;b&gt;Again&lt;/b&gt;&lt;/span&gt;</div>

.html() 和 .text() 最大的不同 Text 輸入的資料不會被執行 (避免 XSS )

Page 77: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取<button> 並設定 click 事件

<button>I'm a Button</button>

原始的 HTML

Page 78: 咩星征服計劃 用 Js 征服地球 Part II

jQuery API – Do Something

選取<button> 並設定 click 事件

<button>I'm a Button</button>

原始的 HTML

$("button").click(function(){ alert(“You Just Clicked on a Button");

});

Page 79: 咩星征服計劃 用 Js 征服地球 Part II

Javascript Online

Page 80: 咩星征服計劃 用 Js 征服地球 Part II

Javascript Online

http://jsfiddle.net/

Page 81: 咩星征服計劃 用 Js 征服地球 Part II

Javascript Online

http://codepen.io/

Page 82: 咩星征服計劃 用 Js 征服地球 Part II

Javascript Online

http://jsbin.com/

Page 83: 咩星征服計劃 用 Js 征服地球 Part II

practice

jQuery API

Page 84: 咩星征服計劃 用 Js 征服地球 Part II

show & hidehttp://codepen.io/phate/pen/sGAzl

togglehttp://codepen.io/phate/pen/pKtsu

addClass & removeClasshttp://codepen.io/phate/pen/CEazJ

toggleClasshttp://codepen.io/phate/pen/KAdEq

csshttp://codepen.io/phate/pen/mErxt

append/ prependhttp://codepen.io/phate/pen/AnKys

html / texthttp://codepen.io/phate/pen/nHEDi

jQuery APIhttp://goo.gl/JwAUZD