Sự kiện một lần trong jQuery
Khi chúng ta học về việc gỡ bỏ sự kiện bằng phương thức
off,
chúng ta đã sử dụng cấu trúc sau:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Đầu tiên, chúng ta gắn hàm xử lý bằng
on,
sau đó gỡ bỏ bằng off.
Trong jQuery có một phương thức tiện lợi là
one,
cho phép gắn một sự kiện một lần -
nó sẽ chỉ thực thi một lần duy nhất, rồi
sau đó tự động được gỡ bỏ. Phương thức này
nhận loại sự kiện làm tham số đầu tiên,
và hàm được gắn làm tham số thứ hai.
Ví dụ tiếp theo chúng ta sẽ xem xét dựa trên mã HTML dưới đây:
<ul>
<li>văn bản</li>
<li>văn bản</li>
<li>văn bản</li>
</ul>
Mã CSS trông như thế này:
li {
width: 100px;
cursor: pointer;
}
Bây giờ chúng ta gắn một sự kiện một lần vào mỗi
li:
$('li').one('click', function() {
$(this).append('!');
});
Hãy nhấp vào các mục danh sách.
Như bạn thấy, chúng ta có được hiệu ứng tương tự nhờ vào
phương thức one.
Gắn một sự kiện cho tất cả các liên kết -
khi di chuột qua liên kết, hãy thêm
href của nó vào cuối văn bản
của nó trong dấu ngoặc tròn.
Sau lần di chuột đầu tiên lên liên kết,
cần gỡ bỏ sự kiện khỏi nó, sự kiện này
đã thêm href vào cuối văn bản.
Đối với tất cả các input, hãy làm sao để chúng
hiển thị value của chính mình khi
nhấn vào bất kỳ input nào, nhưng chỉ trong
lần nhấn đầu tiên. Việc nhấn lại vào
input không được gây ra phản ứng.
Có các đoạn văn chứa số. Khi nhấp vào một đoạn văn, bình phương của số mà nó chứa phải xuất hiện trong đó, nhưng chỉ ở lần nhấp đầu tiên. Khi nhấp đúp vào đoạn văn, số trong đoạn văn phải được nhân đôi, nhưng cũng chỉ lần đầu tiên.
Có các đoạn văn. Hãy làm sao cho ở lần nhấp đầu tiên
vào một đoạn văn, dấu '!' được thêm vào cuối của nó,
nhưng chỉ ở lần nhấp đầu tiên.