Showing posts with label jQuery. Show all posts
Showing posts with label jQuery. Show all posts

Wednesday, February 18, 2015

jQuery - Phương thức sự kiện

jQuery cho phép đáp ứng các sự kiện trong trang HTML.

Sự kiện là gì?

Tất cả những hành động khác nhau trên trang web mà có thể đáp ứng, được gọi là sự kiện.Một sự kiện đại diện cho thời điểm chính xác khi một cái gì đó xảy ra .

Ví dụ:
  • di chuyển chuột qua một thành phần
  • lựa chọn một radio button
  • click vào một thành phần
Thuật ngữ "fires" thường được sử dụng với các sự kiện (event). Ví du: "sự kiện nhấn phím "fires" thời điểm bạn nhấn một phím".

Dưới đây là một số sự kiện DOM phổ biến:

ChuộtBàn phímForm Tài liệu/Cửa sổ
click (nháy đơn)nhấn phímgửitải
nháy képphím xuốngthay đổithay đổi kích cỡ
di chuyển vàophím lênfocusscroll
di chuyển rablurunload

Cú pháp cho phương thức sự kiện trong jQuery

Trong jQuery, hầu hết sự kiện DOM có một phương thức tương đương jQuery. Để gán một sự kiện click vào tất cả các đoạn văn trên một trang, bạn có thể làm điều này:

$("p").click();

Bước tiếp theo là xác định những gì sẽ xảy ra khi sự kiện diễn ra. Bạn phải viết một hàm cho sự kiện:

$("p").click(function(){
// action goes here!!
});

Những phương thức sự kiện phổ biến trong jQuery

$(document).ready()

Phương thức $(document).ready() cho phép chúng ta thực hiện hàm khi tài liệu được tải xong hoàn toàn. Sự kiện này sẽ được giải thích ở bài cú pháp trong jQuery.

click()

Phương thức click gắn một hàm xử lý sự kiện cho phần tử HTML.

Hàm này thực thi khi người dùng click vào phần tử HTML.

Ví dụ dưới đây nói rằng: Khi một click xảy ra trên thẻ <p> nào đó; ẩn thẻ <p> ấy:

Ví dụ:

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


dblclick()

Phương thức dbclick() gắn một hàm xử lý sự kiện cho phần tử HTML.

Hàm này thực thi khi người click đúp vào một thành phần HTML:

Ví dụ:

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


mouseenter()

Phương thức mouseenter() gắn một hàm xử lý sự kiện cho một phần tử HTML.

Hàm này sẽ thực thi khi con trỏ chuột được đưa vào khu vực của phần tử HTML được chọn:

Ví dụ:

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


mouseleave()

Phương thức mouseleave() gắn một hàm xử lý sự kiện cho một phần tử HTML.

Hàm được thực thi khi con trỏ chuột được đưa ra khỏi phần tử HTML được chọn.

Ví dụ:

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


mousedown()

Phương thức mousedown() gắn một hàm xử lý sự kiện cho một phần tử HTML.

Hàm được thực thi khi con trỏ trái chuột được nhấn trong khi chuột di chuyển qua phẩn từ HTML đó. (cá nhân mình thấy nó rất giống hàm click)

Ví dụ:

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

mouseup()

Phương thức mouseup() gắn một hàm xử lý sự kiện vào phần tử HTML.

Hàm được thực thi khi, chuột trái được nhả trong khi chuột di chuyển qua phần tử HTML:

Ví dụ:

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


hover()

Phương thức hover()có hai chức năng và là sự kết hợp của hai hàm mouseenter() và mouseleave().

Hàm đầu tiên được thực thi khi chuột di chuyển vào thành phần HTML, và hàm thứ hai được thực thi khi chuột di chuyển ra ngoài thành phần HTML:

Ví dụ:

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


focus()

Phương thức focus() gắn một hàm xử lý sự kiện vào các trường trong form HTML.

Hàm này được thực thi khi trường trong form được "focus":

Ví dụ:

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


blur()

Phương thức blur() gắn một hàm xử lý sự kiện vào các trường trong form HTML.

Hàm này được thực thi khi trường trong form mất focus.

Ví dụ:

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


focus() và blur() xử lý hai sự kiện trái ngược nhau.

Hiệu ứng jQuery - Ẩn và Hiện

jQuery hide() và show()

Với jQuery, bạn có thể ẩn và hiện các thành phần HTML với phương thức tương ứng là hide() và show().

Ví dụ:

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

$("#show").click(function(){
$("p").show();
});



Nếu bạn click vào nút Ẩn, nội dung này sẽ ẩn đi, ấn nút Hiện để show ra


Cú pháp:

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

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


Tham số tùy chọn tốc độ cho phép bạn chọn tốc độ ẩn/hiện cụ thể và có thể sử dụng các giá trị như: "slow", "fast", hoặc mili giây.

Các tham số tùy chọn callback (gọi lại) là một chức năng được thực hiện sau khi hide( ) hoặc show( ) hoàn thành hoàn toàn ( bạn sẽ tìm hiểu thêm về các chức năng gọi lại trong bài sau).

Ví dụ dưới đây minh họa cách sử dụng thông số tùy chọn tốc độ trong hide():

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


Đây là một đoạn văn bản.
Đây là một đoạn văn bản khác.

jQuery toggle()

Với jQuery, bạn có thể chuyển đổi giữa hide() và show() với phương thức toggle().

Hiển thị thành phần ẩn và ẩn thành phần hiển thị:

Ví dụ:

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


Cú pháp:

$(selector).toggle(speed,callback);

Tham số tùy chọn tốc độ cho phép bạn chọn tốc độ ẩn/hiện cụ thể và có thể sử dụng các giá trị như: "slow", "fast", hoặc mili giây.

Tham số callback là hàm sẽ được thực hiện sau khi toggle() hoàn thành.
Đây là một đoạn văn bản.Đây là một đoạn văn bản khác.

Tuesday, February 17, 2015

Bộ chọn của jQuery

Bộ chọn jQuery là một trong những phần quan trọng nhất của thư viện jQuery.

Bộ chọn jQuery

Bộ chọn jQuery cho phép bạn chọn và thao tác trên các thành phần HTML.

Bộ chọn jQuery được sử dụng để "tìm kiếm" (hoặc lựa chọn) phần tử HTML dựa trên id, class, kiểu, thuộc tính, giá trị của thuộc tính và nhiều yếu tố khác nữa. Nó dựa trên bộ chọn của CSS, và thêm vào đó có những bộ chọn tùy biến riêng.

Tất cả các bộ chọn trong jQuery bắt đầu với ký hiệu $ và dấu ngoặc đơn: $()

Lựa chọn phần tử theo tên

jQuery lựa chọn thành phần dựa trên tên của phần tử.

Bạn có thể chọn tất cả các thẻ <p> trong trang bằng cách:

$("p")

Ví dụ:

Khi người dùng click vào button, tất cả các thẻ <p> sẽ bị ẩn đi:

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

Lựa chọn theo id

jQuery có thể sử dụng id của thẻ HTML để tìm ra phần tử cụ thể cần tác động.

Một id phải duy nhất trong trang, vì vậy bạn phải sử dụng #id selector khi bạn muốn tìm kiếm một thành phần duy nhất.

Để tìm phần tử với id cụ thể, viết ký tự thăng (#) theo sau bởi tên id của phần tử HTML:

$("#test")

Ví dụ:

Khi người dùng click vào butto, phần tử với id="test" sẽ bị ẩn đi:

$(document).ready(function(){
$("button").click(function(){
$("#test").hide();
});
});

Lựa chọn theo class

Bộ chọn jQuery theo class tìm phần tử với một class cụ thể.

Để tìm các phần tử với class cụ thể, viết dấu chấm theo sau bởi tên của class:

$(".test")

Ví dụ

Khi người dùng click vào button, thành phần với class="test" sẽ bị ẩn đi:

$(document).ready(function(){
$("button").click(function(){
$(".test").hide();
});
});

Thêm các ví dụ về bộ chọn trong jQuery

Cú phápMô tả
$("*")Chọn tất cả các thành phần
$(this)Chọn phần tử HTML hiện tại
$("p.intro")Chọn tất cả các thẻ p với class là intro
$("p:first")Chọn thẻ p đầu tiên
$("ul li:first")Chọn thẻ li đầu tiên nằm trong thẻ ul đầu tiên
$("ul li:first-child")Chọn tất cả các thẻ li đầu tiên nằm trong các thẻ ul
$("[href]")Lựa chọn tất cả các thẻ có thuộc tính href
$("a[target='_blank']")Lựa chọn tất cả các thẻ a với thuộc tính được chọn có giá trị bằng "_blank"
$("a[target!='_blank']")Lựa chọn tất cả các thẻ a với thuộc tính được chọn có giá trị khác "_blank"
$(":button")Lựa chọn tất cả các thẻ <button> và input có type là button (type="button")
$("tr:even")Lựa chọ tất cả các thẻ <tr> chẵn
$("tr:odd")Lựa chọn tất cả các thẻ <tr> lẻ

Chức năng trong một file riêng

Nếu trang web của bạn bao gồm nhiều trang, và bạn muốn chức năng jQuery của bạn vận hành dễ dàng, bạn có thể đưa file jQuery đó vào file .js riêng.Khi chúng tôi thực hành các bài tập liên quan đến jQuery trong các bài hướng dẫn, các chức năng được bổ sung trực tiếp vào bên trong thành phần <head> . Tuy nhiên, đôi khi nó là thích hợp hơn để đặt chúng trong một file riêng biệt, giống như thế này (sử dụng thuộc tính src để liên kết tới các file .js) :

Ví dụ:

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js">
</script>
<script src="my_jquery_functions.js"></script>
</head>

Cú pháp của jQuery

Với jQuery, bạn có thể chọn thành phần HTML mình muốn thực hiện hành động trên chúng.

Cú pháp của jQuery

Cú pháp của jQuery bao gồm phần tử HTML được chọn và hành động lên (các) phần tử đó.

Cú pháp cơ bản là: $(selector).action()
  • Ký hiệu $ để định nghĩa/truy cập jQuery
  • Một (selector) là một hoặc nhiều phần tử HTML
  • Một jQuery action() là một hành động nào đó trên (các) phần tử
Ví dụ:

$(this).hide() - dùng để ẩn đi phần tử hiện tại. hides the current element

$("p").hide() - dùng để ẩn tất cả thành phần <p>

$(".test").hide() - dùng để ẩn các phần tử có class="test"

$("#test").hide() - dùng để ẩn phần tử có id="test".

Bạn quen thuộc với bộ chọn trong CSS?

jQuery sử dụng cú pháp của CSS để lựa chọn các phần tử. Bạn sẽ học được nhiều hơn về cú pháp selector trong chương kế tiếp.

Tài liệu sẵn sàng cho các sự kiện

Bạn có thể để ý, các ví dụ của chúng tôi về jQuery đều được nhúng vào bên trong tài liệu đã sẵn sàng dùng:

$(document).ready(function(){

// jQuery methods go here...

});


Điều này dùng để ngăn bất kỳ đoạn code jQuery nào được chạy trước khi toàn bộ tài liệu được tải đầy đủ (sẵn sàng để dùng).

Một thực hành tốt là đợi cho đến khi tài liệu được tải đầy đủ và sẵn sàng sử dụng. Nó cũng cho phép bạn sử dụng đoạn code JavaScript trước phần body của tài liệu, trong phần head.

Dưới đây là một số ví dụ về hành động sẽ bị thất bại nếu nó được chạy trước khi tài liệu được tải đầy đủ:
  • Khi bạn muốn ẩn một phần từ mà nó chưa được tạo ra
  • Khi bạn muốn lấy kích cỡ của ảnh mà nó chưa tải kịp
Mẹo: Nhóm jQuery cũng tạo các phương thức rút gọn cho tài liệu đã sẵn sàng:

$(function(){

// jQuery methods go here...

});


Sử dụng cú pháp nào mà bạn muốn. Chúng tôi nghĩ cách viết tài liệu sẵn sàng cho sự kiện là dễ hiểu hơn khi đọc code.

Bắt đầu với jQuery

Thêm jQuery vào trang web của bạn.

Có vài cách để bạn bắt đầu sử dụng jQuery trên website. Bạn có thể:
  • Download thư viện jQuery trên trang jQuery.com
  • Thêm jQuery từ CDN, chẳng hạn Google 

Download jQuery

Có hai phiên bản jQuery để bạn tải về:
  • Phiên bản cho người dùng - phiên bản được nén để giảm kích thước, cái này chính là phiên bản được nhúng vào trang web
  • Phiên bản cho nhà phát triển - phiên bản dùng để kiểm thử và phát triển thêm (không nén và dễ dàng đọc được code)
Cả hai phiên bản bạn đều có thể tải về từ jQuery.com

Thư viện jQuery là một file JavaScript, và bạn có thể liên kết nó với HTML bằng thẻ <script> (lưu ý là thẻ <script> phải được đưa vào trong khu vực thẻ <head>):

<head>
<script src="jquery-1.11.2.min.js"></script>
</head>


Mẹo: Đưa file vừa tải về vào cùng thư mục với trang web mà bạn muốn sử dụng nó.

Bạn có tự hỏi tại sao chúng ta không có đoạn type="text/javascript" vào bên trong thẻ <script>

Đơn giản vì điều đó là không cần thiết trong HTML5. JavaScript là ngôn ngữ script mặc định trong HTML5 và trong tất cả các trình duyệt hiện đại!

jQuery CDN

Nếu bạn không muốn tải và lưu jQuery bằng host của riêng mình, bạn có thể sử dụng nó từ CDN (Mạng phân phối nội dung).

Cả Google và Microsoft đều host jQuery.

Để sử dụng jQuery từ Google hoặc Microsoft, bạn sử dụng một trong các cách sau đây:

Google CDN:

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>


Microsoft CDN:

<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.2.min.js"></script>
</head>


Một lợi ích lớn khi web của bạn sử dụng jQuery được host trên Google hoặc Microsoft:

Nhiều người dùng đã từng tải jQuery từ Google hoặc Microsoft khi họ truy cập website nào đó. Do vậy, khi người dùng truy cập trang web của bạn, trang web sẽ được tải nhanh hơn so với việc bạn tự host jQuery (tự nhúng jQuery thông qua file trên hosting của bạn). Ngoài ra, hầu hết các CDN đảm bảo để bạn tải được dữ liệu từ máy chủ gần bạn nhất, điều này cũng giúp website tải nhanh hơn.

Giới thiệu về jQuery

Mục đích của jQuery là làm cho bạn sử dụng các ứng dụng JavaScript dễ dàng hơn trên website.

Những gì là nền tảng bạn cần biết

Trước khi bạn bắt đầu học jQuery, bạn cần phải có các kiến thức nền tảng về:
Nếu bạn muốn học các chủ đề này, trên Blog Mạng Lưới Toàn Cầu có khá nhiều, bạn có thể tham khảo nhé.

jQuery là gì?

jQuery là thư viện nhỏ gọn JavaScript giúp bạn "viết ít hơn nhưng làm được nhiều hơn".

Mục đích của jQuery là giúp bạn sử dụng JavaScript được dễ dàng hơn.

jQuery cung cấp rất nhiều lệnh phổ biến mà yêu cầu rất nhiều dòng lệnh JavaScript để thực hiện, và chúng được gói gọn lại để bạn có thể gọi thông qua một dòng lệnh.

jQuery cũng làm đơn giản hóa rất nhiều thứ từ JavaScript, ví dụ như câu lệnh gọi AJAX và thao tác DOM.

Thư viện jQuery bao gồm các chức năng sau:
  • Thao tác trên HTML/DOM
  • Thao tác trên CSS
  • Phương thức sự kiện HTML
  • Hiệu ứng và hình ảnh động
  • AJAX
  • Tiện ích
Mẹo: Thêm vào đó, jQuery có rất nhiều plugin cho hầu hết các nhiệm vụ.

Tại sao lại là jQuery?


Hiện có rất nhiều framework JavaScript nhưng jQuery vẫn phổ biến nhất và ngày càng rộng mở.

Nhiều công ty hàng đầu thế giới sử dụng jQuery, ví dụ như:
  • Google
  • Microsoft
  • IBM
  • Netflix 

jQuery làm việc trên tất cả các trình duyệt?

Các team hỗ trợ jQuery hiểu rõ các rắc rối liên quan đến trình duyệt, và họ có hỗ trợ giải quyết những vấn đề đó thông qua thư viện jQuery. jQuery vấn chạy chính xác trên tất cả các trình duyệt phổ thông, bao gồm cả trình duyệt cổ lai hy Internet Explorer 6!