Bài giảng JQuery - Ngô Bá Nam Phương
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng JQuery - Ngô Bá Nam Phương", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_jquery_ngo_ba_nam_phuong.pdf
Nội dung text: Bài giảng JQuery - Ngô Bá Nam Phương
- JQuery Trình bày: Ngô Bá Nam Phương Khoa CNTT – ĐHKHTN
- Nội dung trình bày . Giới thiệu về JQuery . JQuery Selector . JQuery Filter . Thay đổi nội dung document . Xử lý sự kiện . Hiệu ứng & hoạt ảnh
- JQuery . Thư viện javascript mã nguồn mở, miễn phí . Tạo các trang web có khả năng tương tác cao và tương thích trên nhiều trình duyệt.
- Lợi ích sử dụng JQuery . Truy xuất các thành phần nội dung trang web với cú pháp tương tự css (thông qua các bộ chọn selector). . Hỗ trợ nhiều thao tác xử lý trên tập các element chỉ bằng một dòng lệnh (statement chaining). $(“selector”).func1().func2().func3() ; . Đơn giản hóa cách viết mã nguồn javascript ( write less, do more ). Tách biệt mã xử lý javascript và thành phần thể hiện HTML.
- Cài đặt . Download: . Version mới nhất: 1.3.2 . Có 2 version: . Production ( triển khai lên host thật ) . Development ( dùng trong quá trình phát triển, hỗ trợ debug, )
- Sử dụng JQuery (sự kiện onload) . Xử lý sự kiện onload khởi tạo các thành phần trong trang. . Cách tiếp cận Javascript truyền thống: function onloadHandler() { alert(“run after all page contents have been downloaded, including image”); } window.onload = onloadHandler; . Với JQuery, hàm xử lý sự kiện onload sẽ gọi ngay sau khi DOM của document đã nạp xong.
- Sử dụng JQuery (sự kiện onload) $(“document”).ready( function() { alert(“hello world”); } ); . $(“document”).ready có thể được gọi nhiều lần, các hàm XL sự kiện sẽ được gọi theo thứ tự nó được đăng ký.
- Sử dụng JQuery (sự kiện onload)
- Các thành phần trong JQuery . Core functionality: các phương thức core của JQuery và các hàm tiện ích được sử dụng thường xuyên. . Selector & Traveral: chọn, tìm kiếm element, duyệt qua các element trong document. . Manipulation & CSS: thay đổi nội dung các element trong document, làm việc với css.
- Các thành phần trong JQuery . Event: đơn giản hóa việc xử lý event. Cung cấp event helper function đăng ký nhanh các event. . Effect & Animation: cung cấp các hàm hỗ trợ tạo animation & effect. . Ajax . User interface: tập widget với các control: accordion, datepicker, dialog, progressbar, slider, tab . Extensibility: hỗ trợ tạo plugin bổ sung thêm các chức năng mới vào core library.
- Nội dung trình bày . Giới thiệu về JQuery . JQuery Selector . JQuery Filter . Thay đổi nội dung document . Xử lý sự kiện . Hiệu ứng & hoạt ảnh
- JQuery Selector . Truy xuất nội dung (element) trong document dựa trên biểu thức selector cung cấp. Selector sử dụng cú pháp tương tự CSS. . Tập kết quả do Selector và Filter trả về: JQuery objects ( không phải DOM objects ).
- JQuery Selector . Cú pháp và cách chọn tương tự CSS SELECTOR Ý NGHĨA TAGNAME Chọn tất cả các element có tên là TAGNAME #IDENTIFIER Chọn tất cả các element có ID là IDENTIFIER Chọn tất cả các element với thuộc tính class có giá trị là .className className Chọn tất cả các element thuộc loại Tag, với thuộc tính class có Tag.className giá trị là className * Chọn tất cả các element trên document.
- JQuery Selector Ví dụ:
- JQuery Selector Ví dụ:
- JQuery Selector Ví dụ:
- JQuery Selector . Chọn element dựa trên mối quan hệ phân cấp giữa các element SELECTOR Ý NGHĨA Selector1, , Chọn tất cả các element được xác định bởi tất cả các selectorN Selector .class1,.class2 Chọn tất cả các element có khai báo class1 hoặc class2 Parent > Child Chọn tất cả các Child element là con trực tiếp của Parent Chọn tất cả các Descendant element là con cháu của Ancestor Descendant Ancestor ( chứa bên trong Ancestor ) Prev + Next Chọn tất cả các Next element nằm kế tiếp Prev element Chọn tất cả các element anh em khai báo sau Prev và thỏa Prev ~ Siblings Sibling selector
- JQuery Selector Ví dụ:
- JQuery Selector Ví dụ:
- JQuery Selector Ví dụ:
- JQuery Selector Ví dụ:
- JQuery Selector Ví dụ:
- JQuery Selector Ví dụ:
- Form Selector BỘ LỌC Ý NGHĨA :input Chọn tất cả thẻ input, textarea trên Form :text Chọn tất cả text field trên Form :password Chọn tất cả password field :radio Chọn tất cả radio button :checkbox Chọn tất cả checkbox :submit Chọn tất cả button submit :reset Chọn tất cả button reset :image Chọn tất cả image :button Chọn tất cả generalized button :file Chọn tất cả control upload file
- Form Selector
- Form Selector
- Nội dung trình bày . Giới thiệu về JQuery . JQuery Selector . JQuery Filter . Thay đổi nội dung document . Xử lý sự kiện . Hiệu ứng & hoạt ảnh
- JQuery Filter . JQuery Selector thường trả về 1 tập đối tượng. JQuery Filter được dùng để lọc trên kết quả chọn của JQuery Selector. . Có 6 loại Filter: . Basic: lọc phần tử ở vị trí đầu tiên, cuối cùng, chẵn, lẻ, . Content: lọc dựa trên nội dung . Visibility: lọc dựa trên trạng thái hiển thị của element . Attribute: lọc dựa trên thuộc tính của element . Child: lọc dựa trên mối quan hệ với element cha . Form: lọc trên các thành phần khai báo trên Form
- Basic JQuery Filter Bộ lọc Ý nghĩa :first Chọn phần tử đầu tiên trong tập kết quả do Selector trả về :last Chọn phần tử cuối cùng trong tập kết quả do Selector trả về :even Chọn phần tử chẵn :odd Chọn phần tử lẻ :eq ( index ) Chọn phần tử tại vị trí index :gt ( index ) Chọn phần tử có vị trí > index :lt ( index ) Chọn phần tử có vị trí < index :header Chọn tất cả header element (H1, H2, H6) :not ( selector ) Chọn phần tử không thỏa selector
- JQuery Filter
- JQuery Filter
- JQuery Filter
- JQuery Filter
- Attribute Filter BỘ LỌC Ý NGHĨA [attribute] Lọc các phần tử có khai báo attribute [attribute=value] Lọc các phần tử có attribute với giá trị = value [attribute!=value] Lọc các phần tử có attribute với giá trị != value [attribute^=value] Lọc các phần tử có attribute với giá trị bắt đầu là value [attribute$=value] Lọc các phần tử có attribute với giá trị kết thúc là value [attribute*=value] Lọc các phần tử có attribute chứa giá trị value [attributeFilter1] Lọc các phần tử thỏa tất cả các attribute filter. [attributeFilter2]
- Attribute Filter
- Attribute Filter
- Attribute Filter
- Attribute Filter
- Content & Visibility Filter BỘ LỌC THEO Ý NGHĨA NỘI DUNG :contains(text) Lọc các phần tử có chứa chuỗi text :empty Lọc các phần tử rỗng :has(selector) Lọc các phần tử có chứa ít nhất 1 element thỏa selector Lọc các phần tử là cha ( chứa ít nhất 1 element khác :parent hoặc text ) BỘ LỌC THEO TRẠNG Ý NGHĨA THÁI HiỂN THỊ Lọc các phần tử có trạng thái là visible ( đang hiển :visible thị ) :hidden Lọc các phần tử có trạng thái hidden ( đang ẩn )
- Content Filter
- Content Filter
- Content Filter
- Content Filter
- Child Filter BỘ LỌC Ý NGHĨA :nth-child(index) :nth-child(even) Lọc các phần tử theo vị trí so với cha của nó :nth-child(odd) Lọc phần tử theo vị trí ( vị trí thỏa phương trình :nth-child(equation) tham số ) so với cha của nó :first-child Lấy phần tử đầu tiên so với cha của nó :last-child Lấy phần tử cuối cùng so với cha của nó Lấy phần tử nếu phần tử này là con duy nhất so :only-child với cha của nó
- Child Filter
- Nội dung trình bày . Giới thiệu về JQuery . JQuery Selector . JQuery Filter . Thay đổi nội dung document . Xử lý sự kiện . Hiệu ứng & hoạt ảnh
- Duyệt danh sách các element trong document BỘ LỌC Ý NGHĨA size(), length Lấy số phần tử trong tập kết quả của Selector Lấy tập DOM elements trong tập kết quả của get() Selector get(index) Lấy DOM element ở vị trí index find(expression) Lấy các element con cháu thỏa expression Gọi thực thi phương thức với từng element trong each() tập kết quả của Selector
- Duyệt danh sách các element trong document alert( $("p").size() ); // 4 for(var i=0 ; i < $("p").size() ; ++i ) { var name = $("p").get(i); // DOM element var innerText = $("p").get(i).innerText; }
- Duyệt danh sách các element trong document $(“ul").find(“li.a").css("border","1px solid red"); var i = 1; $("p").each(function () { $(this).html("Custom paragraph " + i); i++; });
- Tạo nội dung mới . Phương thức $(“html content”), kết quả trả về là 1 JQuery object. Ví dụ: var h1 = $(“ heading 1 ”); // tạo thẻ h1 với nội dung var temp = “ heading 1 ”; var newH1 = $(temp); // tạo thẻ h1 từ biến temp $(“p:eq(0)”).html(newH1);
- Truy cập, thay đổi nội dung trong element Phương thức Ý nghĩa html() Lấy nội dung html bên trong element đầu tiên thỏa selector html( newContent ) Thay đổi nội dung html bên trong mọi element thỏa selector ( tương tự innerHTML trong DOM ) text() Lấy nội dung text bên trong element đầu tiên text( newTextContent ) Thay đổi nội dung text bên trong mọi element thỏa selector ( tương tự innerText )
- Truy cập, thay đổi nội dung trong element
- Truy cập, thay đổi nội dung trong element
- Thay đổi giá trị thuộc tính Phương thức Ý nghĩa attr( name ) Lấy attribute value của element đầu tiên thỏa selector attr( properties ) Thiết lập tập attribute cho mọi element thỏa selector. Properties có dạng object-notation syntax. attr( key, value ) Thiết lập attribute cho mọi element thỏa selector attr( key, function ) Thiết lập giá trị attribute dựa trên 1 function với mọi element thỏa selector. removeAttr( name ) Xóa attribute với mọi element
- Thay đổi giá trị thuộc tính – ví dụ $("a").attr("href","trang2.html"); $("a").text("trang 2"); $("a").attr("target","_blank"); $("a img").attr("src","book2.jpg"); $("a").removeAttr("href"); $("img").attr( {src:"book2.jpg",alt:"hello world"} );
- Chèn nội dung Phương thức Ý nghĩa append( content ) Chèn content vào sau nội dung có sẵn của các element thỏa selector appendTo( selector ) Chèn element thỏa selector vào sau nội dung có sẵn của các element thỏa selector tham số prepend( content ) Chèn content vào trước nội dung có sẵn của các element thỏa selector prependTo( selector ) Chèn element thỏa selector vào trước nội dung có sẵn của các element thỏa selector tham số after( content ) Chèn content vào sau các element thỏa selector before ( content ) Chèn content vào trước các element thỏa selector
- Chèn nội dung
- Chèn nội dung
- Làm việc với CSS Phương thức Ý nghĩa css ( name ) Lấy giá trị thuộc tính name của element đầu tiên thỏa selector css ( properties ) Thiết lập tập thuộc tính css đối với mọi element thỏa selector css ( property, value ) Thiết lập giá trị 1 thuộc tính đối với mọi element thỏa selector
- Làm việc với CSS
- Làm việc với CSS Phương thức Ý nghĩa addClass ( class ) Thêm class vào các element thỏa selector hasClass ( class ) Kiểm tra class có tồn tại trong các element thỏa selector removeClass ( class ) Xóa class khỏi các element thỏa selector toggleClass ( class ) Thêm class vào các element thỏa selector nếu class chưa khai báo, ngược lại nếu đã tồn tại rồi, class sẽ bị xóa
- Thay đổi kích thước Phương thức Ý nghĩa height () Lấy chiều cao của element đầu tiên thỏa selector width () Lấy chiều rộng của element đầu tiên thỏa selector height ( val ) Thiết lập chiều cao của mọi element thỏa selector width ( val ) Thiết lập chiều rộng của mọi element thỏa selector
- Nội dung trình bày . Giới thiệu về JQuery . JQuery Selector . JQuery Filter . Thay đổi nội dung document . Xử lý sự kiện . Hiệu ứng & hoạt ảnh
- Xử lý sự kiện $("selector").bind(event,[data],[handler]); Tham số Ý nghĩa event Sự kiện selector xử lý, bao gồm: load, blur, click, dbclick, mousedown, mouseup, mousemove, mouseover, mouseout, submit, keydown, keypress, keyup, data Tùy chọn, dữ liệu truyền vào handler khi event xảy ra $(handler"selector").Tên hàmunbindxử lý sự kiện(event,data,handler);
- Xử lý sự kiện – ví dụ $("div").bind("mouseover",highLight); $("div").bind("mouseleave",highLight); $("div").bind("click", function () { $("div").unbind("mouseover",highLight); $("div").unbind("mouseleave",highLight); $("div").html(" turn off "); }) function highLight(evt) { $("div").toggleClass("highlight"); }
- Xử lý sự kiện – Helper function Xử lý nhanh một số sự kiện thường gặp Phương thức Ý nghĩa click( func ) Xử lý sự kiện click của 1 selector. Một số hàm khác: blur, mousedown, mouseover, mouseout, submit, hover ( func1, Func1: hàm xử lý được gọi khi mouse di chuyển trên selector func2) Func2: hàm xử lý được gọi khi mouse di chuyển ra khỏi selector $("div").hover( highLight , highLight ); function highLight(evt) { $("div").toggleClass("highlight"); }
- Đối tượng Event . Cung cấp các thông tin về event để xử lý. Thuộc tính / Ý nghĩa Phương thức type Loại event xảy ra, ví dụ: “click” target Element mà event xảy ra data Dữ liệu được truyền vào handler bởi phương thức bind pageX, pageY Tọa độ chuột khi event xảy ra preventDefault ( ) Ngăn trình duyệt không thực thi xử lý mặc định, ví dụ khi click vào liên kết $("div").click(function (evt) { $(this).html("pageX:" + evt.pageX + ", pageY:" + evt.pageY + ", type:" + evt.type + ", target:" + evt.target); });
- Nội dung trình bày . Giới thiệu về JQuery . JQuery Selector . JQuery Filter . Thay đổi nội dung document . Xử lý sự kiện . Hiệu ứng & hoạt ảnh
- Hiệu ứng và hoạt ảnh . Ẩn, hiện element . Fade-in, fade-out . Sliding . Di chuyển element . Custom animation effect
- Ẩn/hiện element Phương thức Ý nghĩa show ( ) Hiển thị các element thỏa selector nếu trước đó bị ẩn show( speed, callback ) Hiển thị các element thỏa selector nếu trước đó bị ẩn, speed xác định tốc độ hiển thị. Sau khi hiển thị xong, phương thức callback sẽ được thực thi. hide ( ) Ẩn element nếu trước đó đang hiển thị. hide ( speed, callback ) Ẩn element nếu trước đó đang hiển thị, tham số có ý nghĩa tương tự phương thức show. toggle ( ) Chuyển qua lại trạng thái ẩn/hiện các element. toggle ( speed, Chuyển qua lại trạng thái ẩn/hiện các element, callback) tham số có ý nghĩa tương tự phương thức show. . speed: tốc độ hiệu ứng quy định bởi các giá trị: “slow”, “normal”, “fast” hoặc millisecond
- Ẩn/hiện element $("#div1").show("normal"); $("#div1").hide("slow"); $("#div1").hide(4000); // ẩn trong 4 giây // thay đổi luân phiên trạng thái ẩn/hiện $("#div1").toggle("fast");
- Fade in/fade out Phương thức Ý nghĩa fadeIn(speed, callback) Hiển thị element bằng cách tăng dần độ trong suốt. fadeOut(speed Ẩn element bằng cách giảm dần độ trong suốt về 0, ,callback) sau đó thiết lập style display là none. fadeTo(speed, opacity, Thay đổi độ trong suốt của element. callback )
- Fade in/fade out $("#button_fadein").bind("click",function () { $("#div1").fadeIn("normal"); }); $("#button_fadeout").bind("click",function () { $("#div1").fadeOut("slow"); }); $("#button_fadeto3").bind("click",function () { $("#div1").fadeTo("slow",0.3,function () { alert("finished"); }); }); $("#button_fadeup").bind("click",function () { $("#div1").fadeTo("slow",1.0); });
- Sliding Phương thức Ý nghĩa slideDown(speed, Hiển thị element bằng cách tăng chiều cao. callback) slideUp(speed, callback) Ẩn element bằng cách giảm chiều cao. slideToggle( speed, Chuyển đổi trạng thái ẩn/hiện element. callback)
- Sliding $("#button_slideup").bind("click",function () { $("#div1").slideUp("normal"); }); $("#button_slidedown").bind("click",function () { $("#div1").slideDown("slow"); }); $("#button_toggleslide").bind("click",function () { $("#div1").slideToggle(3000); });
- Custom Animation $(“selector").animate(properties,[duration], [easing],[callback]); Tham số Ý nghĩa properties Các thuộc tính xác trạng thái hiển thị sau khi animate. duration Animate kéo dài trong bao lâu ( “slow”, “normal”, “fast”, milisecond ) easing Hiệu ứng xóa : swing, linear Callback Hàm được gọi sau khi animate xong $(“selector").stop();
- Custom Animation $("#button_growright").click(function () { $("#div1").animate({width:"800"},"normal"); }); $("#button_growleft").click(function () { $("#div1").animate({width: "100"},"fast"); }); $("#button_bigtext").click(function () { $("#div1").animate({fontSize:"40"},2000); }); $("#button_movediv").click(function () { $("#div1").animate( { left : "500", fontSize: "50" } , 1000 ,"linear" ); });