Bạn có nhớ tại sao tôi lại biến trang này thành cá sấu không? Vì tôi rất rất sợ cá sấu. Giờ tôi nghĩ là mình đã sẵn sàng để đối mặt với nỗi sợ của mình hơn nữa, để còn đưa nhiều cá sấu lên trang này hơn nữa. Làm sao làm thế được? Tôi nghĩ là sẽ rất hay nếu tôi có thể bao phủ cả trang web này với ảnh cá sấu khi tôi click chuột. Ta sẽ lập trình cái đó. Tôi đã viết trước một đoạn pseudocode trong thẻ script này đây. Nếu bạn không biết pseudocode là gì, thì nó là một dạng code cho người thường dễ đọc hơn. Tôi thấy dùng pseudocode thì sẽ dễ hiểu hơn, nhất là với những tính năng phức tạp mà tôi muốn lập trình. Giờ tôi sẽ chuyển đoạn pseudocode này thành code thật. Việc đầu tiên là khi người dùng click vào trang web. Tôi cần nhận được thông tin bất cứ khi nào người dùng click vào bất cứ điểm nào trên trang web. Để được thế thì tôi sẽ thêm một event listener vào cái . Viết... "body" rồi dùng hàm on(). rồi tên của event: "click". Rồi ta nhập vào một hàm callback. Trong hàm callback này, ta cần tạo một ảnh mới. Tôi sẽ lưu nó vào một biến... $img = ... rồi nhập vào thẻ , và ta đổi nguồn ảnh đi... tôi sẽ dùng nguồn ảnh trên này, và đặt chiều rộng là 100, rồi ta cần đặt ảnh này vào một chỗ nào đó trên trang web. Tôi sẽ đặt nó vào cuối body. Được rồi. Hiện tại thì khi click vào, tôi mới chỉ thấy ảnh cá sấu này hiện ra phía cuối trang web. Nếu muốn, bạn có thử dừng bài lại và tự thử xem nó thế nào. Nhưng giờ tôi lại muốn đặt ảnh đó vào vị trí đúng như vị trí tôi click chuột trên trang web nữa. Làm sao để biết vị trí click ở đâu? Mỗi khi có event của con chuột, trình duyệt sẽ thông báo cho trang web thông tin đó, và jQuery sẽ lưu thông tin đó trong đối được event của jQuery. Thế đối tượng event đó ở đâu? Thực ra là jQuery có truyền đối tượng nó vào làm parameter đầu tiên của hàm callback. Tôi sẽ đặt tên cho parameter đó để ta con sử dụng tên nó ở trong hàm callback. Đôi khi tôi sẽ muốn console log cái event này để kiểm tra nội dung các thuộc tính của nó trước khi làm gì với nó, để xem làm mình sẽ làm việc với những thông tin gì. Nếu bạn dừng video này lại và click vào trang thử xem, bạn sẽ thấy trong log có một đối tượng jQuery với mỗi dãy dài các thuộc tính. Bạn cũng có thể đọc tài liệu của jQuery để xem có những thuộc tính gì và ý nghĩa của chúng là gì. Có 2 thuộc tính mà tôi quan tâm đến chính là pageX và pageY, đó là toạ đọ của vị trí click chuột trên trang web tôi có thể dùng toạ độ đó để xác định vị trí cho ảnh bằng CSS. Đầu tiên tôi sẽ đặt thuộc tính CSS là absolute. Nếu bạn không nhớ CSS absolute là thế nào, bạn có thể quay lại coi khoá học về HTML CSS. Giờ tôi sẽ đặt vị trí theo vị trí con chuột. tôi sẽ đặt top bằng 'event.pageY', tức là sử dụng thuộc tính pageY của đối tượng event trong jQuery mà trình duyệt nhập vào hàm callback này. Rồi tôi đặt giá trị left là 'event.pageX'. Tôi sẽ thêm đơn vị nữa: px, bởi vì ta cần xác định đơn vị để CSS biết phải dùng đơn vị nào hay là dùng phần trăm, đại loại thế. Ta dùng pixel, bỏi vì pageY và pageX là số pixel. Chúng là các giá trị pixel. Okay, giờ đến chỗ hay này. Hãy dừng bài lại, click thử vào trang xem. Hay nhỉ, cá sấu xuất hiện mọi nơi. Giờ thì tôi thích cá sấu rồi, không sợ nữa. Vậy là cái đối tượng event này có thể rất hữu dụng. Ta có thể sử dụng nó trong các trường hợp như thế này để tìm vị trí của con chuột, ví dụ như để làm ứng dụng vẽ, hay là game click chuột, hay tương tác kéo thả. Ta cũng có thể dùng đối tượng event để biết là phím nào được nhấn khi event xảy ra, để viết ứng dụng tương tác với bàn phím như là game 2d hay là trình soạn thảo code online, như là trang này đây. Hay nhỉ.