Ở
phần 1, chúng ta đã biết cấu trúc để viết một plugin cho jQuery, phần 2 này mình sẽ trình bày về cách xử lý dựa trên đối tượng jQuery.
Những cách sử dụng liên hoàn và không liên hoàn trong jQuery
Có thể gọi đây là một chuỗi những lệnh gọi phương thức xử lý của jQuery:
jQuery('#myheader').addClass('.hilite');
jQuery('#myheader').text('Hello world !!!');
Ở trên là từng câu lệnh riêng lẽ, ta có thể rút gọn:
jQuery('#myheader').addClass('.hilite').text('Hello world !!!');
2 khai báo trên đều có kết quả như nhau, nhưng lợi điểm thì khác nhau. Khai báo đầu tách riêng từng câu lệnh, điều này khiến cho jQuery phải truy vấn tìm ra tập thẻ thỏa điều kiện 2 lần ứng với mỗi lần gọi. Nhưng ở khai báo sau thì jQuery chỉ cần một lần truy vấn để tìm thẻ và thông tin những thẻ đó được bảo lưu cho những lần gọi tiếp theo sau. Để có thể gọi một chuỗi liên hoàn như khai báo hai, điều cần thiết là ta phải nắm rõ kết quả trả về của một phương thức jQuery, nếu phương thức trả về đối tượng jQuery thì có nghĩa ta có thể gọi liên hoàn, ngược lại thì không:
jQuery('#myheader').attr('href');
jQuery('#myheader').attr('href', 'http://google.com');
Với lệnh dòng 2, phương thức attr với tham số
'href' sẽ trả về giá trị thuộc tính href của thẻ
#myheader, như vây ta không thể tiếp tục gọi liên hoàn theo sau câu lệnh này được. Đến dòng 3, phương thức attr có tham số
'href' và
'http://google.com' sẽ thực hiện việc gán giá trị của thuộc tính href của thẻ
#myheader, phương thức này trả về đối tượng jQuery, ta có thể gọi liên hoàn. Như bạn thấy đó, cùng một phương thức attr, ở mỗi cách gọi (ngữ cảnh) khác nhau, thì kết quả trả về sẽ khác nhau, chúng ta cần
tham khảo tài liệu về jQuery để có thể vận dụng chính xác.
Hãy nói không với 4T