Tuesday, July 20, 2010

Giới thiệu cơ bản về jQuery và các khái niệm để bạn có thể sử dụng.

Nguồn: http://phpcodevn.com/forum/viewtopic.php?f=37&t=1284
Blog.thegioiwebsite.Net
Cơ bản
Đây là bài hướng dẫn cơ bản, nhằm giúp bạn có những kiến thức căn bản để sử dụng jQuery. Nếu bạn chưa tạo một trang thí nghiệm, hãy tạo một tài liệu HTML với nội dung như sau:

[html]





jQuery

[/html]
Sửa thuộc tính src trong thẻ script để trỏ tới jquery.js Ví dụ, nếu jquery.js ở cùng thư mục với tệp HTML, bạn có thể dùng:
[html][/html]
Bạn có thể tải bản jQuery mới nhất tại trang [url="http://docs.jquery.com/Downloading_jQuery"]Downloading jQuery[/url].
Chạy mã lúc Document Ready (trang đã sẵn sàng)
Có thể thấy rằng hầu hết các lập trình viên Javascript kết thúc mã thực thi bằng cách thêm các dòng mã vào script, tương tự như sau:
[php]window.onload = function(){ ... }[/php]
Các mã bên trong đó sẽ được thực thi khi trang được tải xong. Không còn gì phải bàn, tuy nhiên, mã Javascript không chạy cho đến khi tất cả các hình ảnh trong trang được tải xong (kể cả banner quảng cáo). Lý do cho việc sử dụng window.onload là để chắc chắn rằng HTML 'document' phải được tải xuống hết, sau đó mới chạy mã kia.
Để giải quyết, jQuery có câu lệnh đơn giản, được biết như
[php] ready event:
$(document).ready(function(){
// Mã của bạn
});[/php]
Mã này kiểm tra document và đợi cho đến khi nó sẵn sàng để sử dụng - theo ý bạn muốn. Hãy lấy đoạn mã mẫu ở trên và cho vào tài liệu HTML của bạn. Các ví dụ còn lại của jQuery sẽ được đặt bên trong phần callback của hàm này, chúng sẽ được thực thi khi tài liệu sẵn sàng.
Chuyện gì xảy ra với sự kiện Click
Đầu tiên, chúng ta sẽ thử thực hiện động tác click với
[HTML]clicked. [/HTML]
Bên trong ready function (từ ví dụ ở trên), thêm mã như sau:
[PHP] $("a").click(function(){
alert("Cảm ơn đã ghé thăm!");
});[/PHP]
Lưu tệp HTML và tải lại trang thử nghiệm trên trình duyệt (Ctrl+F5). Bấm vào link nào đó trên trang và trình duyệt sẽ hiện ra một thông báo pop-up.
Đối với sự kiện click và hầu hết các sự kiện khác [url="http://docs.jquery.com/Events"]events[/url], bạn có thể can thiệp vào hành động mặc định - ở đây, sau đây là link dẫn tới jquery.com - bằng cách trả về giá trị false từ điều khiển sự kiện:
[php]$("a").click(function(){
alert("Cảm ơn đã ghé thăm!");
return false;
});[/php]
Nếu không dùng các đoạn mã trên, nếu bạn nhấn link tới jquery.com trong trang, thì trình duyệt sẽ duyệt tới. Nhưng ở đây, trình duyệt sẽ hiện thông báo và không chuyển đi đâu cả.
Thêm một Class (lớp với CSS)
Đây là tác vụ dùng để thêm vào (hoặc bỏ đi) các class từ phần tử nào đó, ví dụ:
[php]$("a").addClass("test");[/php]
Nếu bạn đặt đoạn mã trên vào phần script trong header của trang HTML, thì mã tự động sinh ra sẽ là:
[php][/php]
và sau đó
[url="http://docs.jquery.com/DOM/Attributes#addClass.28_class_.29"]addClass[/url]
được gọi - tất cả những phần từ A sẽ được làm đậm. Để bỏ class, bạn có thể sử dụng [url="http://docs.jquery.com/DOM/Attributes#removeClass.28_class_.29"]removeClass[/url]
Các hiệu ứng khác
Trong jQuery, có cung cấp các thành phần [url="http://docs.jquery.com/Effects"]effects[/url], để làm cho website của bạn thật sự nổi bật. Để chạy thử, hãy thay đoạn mã như sau:
[php]$("a").click(function(){
$(this).hide("slow");
return false;
});[/php]
Bây giờ, nếu bạn nhấn vào liên kết có trong trang, bạn sẽ thấy nó biến mất một cách từ từ.
[[url="http://docs.jquery.com/action/edit/Tutorials:jQuery_Ho%E1%BA%A1t_%C4%90%E1%BB%99ng_Nh%C6%B0_Th%E1%BA%BF_N%C3%A0o?section=6"]edit[/url]]
Khả năng liên kết thành chuỗi (một phép thuật jQuery)
jQuery cung cấp cho bạn một cách viết mã đơn giản và ngắn gọn. Nó tương tự như cách thức lập trình hướng đối tượng (object-oriented programming), nói đúng hơn đây là cách viết thẳng một hàng.
Tóm lại: Mỗi phương thức trong jQuery trả về câu truy vấn đối tượng của chính nó, nó cho phép bạn 'xích' chúng lại với nhau, ví dụ:
[php]$("a").addClass("test").show().html("foo");[/php]
Câu lệnh này chứa những phương thức cá thể (addClass, show, và html) trả về đối tượng jQuery, nó cho phép bạn có thể tiếp dụng sử dụng phương thức để đặt cho phần tử hiện tại.
Bạn có thể dùng xa hơn nữa, bằng cách thêm hoặc bỏ phần tử từ vùng chọn, thay đổi các phần tử này và sau đó trả giá trị lại cho vùng chọn trước, ví dụ:
[php]$("a")
.filter(".clickme")
.click(function(){
alert("You are now leaving the site.");
})
.end()
.filter(".hideme")
.click(function(){
$(this).hide();
return false;
})
.end();[/php]Bạn tạo thêm đoạn mã HTML như sau:
[html]
I give a message when you leave
Click me to hide!
I'm a normal link[/html]Các phương thức thay đổi vùng chọn của jQuery, có thể hoàn lại với end(), nó cho biết sự kết thúc của vùng lựa chọn đó và bắt đầu áp dụng lựa chọn mới:
[php]add(),children(),eq(),filter(),find(),gt(),lt(),next(),not(),parent(),parents() andsiblings().[/php]
Đọc thêm [url="http://docs.jquery.com/DOM/Traversing"]Traversing API documentation[/url] để biết thêm chi tiết về các phương thức này.
Hàm hồi quy, Hàm, và 'this'
Hàm hồi quy là một hàm được truyền như là một thông số cho một hàm khác (hàm gọi/hàm bao ngoài) và sẽ được thực thi sau khi hàm gọi hoàn tất. Điều đáng lưu ý về hàm hồi quy là tất cả những hàm xuất hiện sau "hàm gọi" có thể thực thi trước hàm hồi quy.
Một điều quan trọng khác cần lưu ý là làm thế nào dùng đúng hàm hồi quy. Đây là điều mà tôi thường hay quên cú pháp câu lệnh.
Dùng hàm hồi quy không thông số
Đối với một hàm hồi quy không thông số, bạn có thể gọi theo cách sau:
$.get('myhtmlpage.html', myCallBack);
Lưu ý thông số thứ hai chỉ đơn giản là tên hàm (không truyền như một giá trị chuỗi ký tự và không có dấu ngoặc đơn). Các hàm trong Javascript được xem là những 'khách hàng hạng sang' và vì vậy có thể truyền như một biến số và sẽ được thực thi sau đó.
Dùng hàm hồi quy thông số
Bạn sẽ thắc mắc "Bạn sẽ phải gọi hàm hồi quy như thế nào nếu có thông số?".
Sai
Cách dùng sai (không hoạt động)
$.get('myhtmlpage.html', myCallBack(param1, param2));
Cách này không hoạt động vì bạn gọi myCallBack(param1, param2) sau đó lại truyền giá trị trả về như là một thông số mới cho hàm $.get().
Đúng
Cách dùng đúng
[php]$.get('myhtmlpage.html', function(){
myCallBack(param1, param2);
});[/php]
Lý do, bằng cách truyền một hàm vô danh (đoạn mã với...
[php]function() {
};
[/php]
...sẽ tự động gọi hàm cần thực thi với những thông số cần thiết), bạn đã hoàn tất việc gọi hàm hồi quy.
Cách dùng này đúng vì bạn truyền hàm vô danh như thông số thứ hai cho hàm $.get() mà không phải thực thi hàm đó trước khi truyền.
Đọc thêm
Những người đã và đang dùng jQuery cùng nhau soạn thảo một số [url="http://docs.jquery.com/Tutorials"]tài liệu hướng dẫn[/url] hữu ích để hướng dẫn những người mới dùng jQuery lần đầu tiên như bạn hiểu và học cách ứng dụng thư viện này. Nếu chúng tôi không giải thích rõ ràng những tính năng và chức năng của thư viện jQuery... xin bạn vui lòng thông báo cho chúng tôi biết.
Đến đây, bạn có thể bắt đầu tham khảo tất cả [url="http://docs.jquery.com/Main_Page"]Tài liệu[/url] dễ hiểu và bao quát về jQuery. Nếu bạn có câu hỏi hay thắc mắc, xin vui lòng gửi tin mail đến [url="http://jquery.com/discuss/"]chuyên mục thư từ[/url].

No comments:

Router Packet Networking

Đây là video ngắn khá hay, mô tả đường đi của một gói tin trên Mạng Internet.