10/10/2018, 11:27

Cơ chế của jQuery

Chào các bác.

Em mới học lập trình web.
Cho e hỏi cái cơ chế của jQuery. Nếu như bình thường mình phải tạo một cái attribute cho tag, ví dụ onclick, onfocus... thì mới gọi ra 1 hàm javascript. Sao jQuery thì mình lại ko cần tới những cái attribute này nhỉ?

E đoán là trong cái file jQuery đó, có một đoạn mã mà người ta đã gán toàn bộ các attribute cần thiết cho các tag rồi. Không biết có đúng ko.
motlanroithoi viết 13:43 ngày 10/10/2018
Tìm hiểu nguyên lí hoạt động cũng hay mà. Cái này bạn nên tìm hiểu từ gốc (Javascript/DOM) sau đó mới có thể "đoán" được cách jQuery hoạt động.

Cái "cơ chế" của jQuery thì rộng lắm, còn về vấn đề event thì bạn có thể google với từ khóa: javascript addeventlistener
tandoigai viết 13:34 ngày 10/10/2018
Àh, em ko tìm hiểu toàn bộ nguyên lý hoạt động mà chỉ tự nhiên tò mò, muốn tìm hiểu thử xem tại sao ko cần cái onclick, onfocus... mà nó vẫn có thể tạo hiệu ứng click, focus... mà thôi.
Cám ơn 2 bác.
sonnb viết 13:27 ngày 10/10/2018
Bạn thử gán cho nó sự kiện $('#div').onclick(function(){}); rồi mở firebug lên thử xem cái #div đó nó có gì khác không? Nó bind function vào từng id, class thay vì bạn phải viết thẳng vào cái onclick tag của các element đó.
VnVision viết 13:40 ngày 10/10/2018
Ý người hỏi là tại sao jquery không thêm các các attribute như onclick, onfocus... vào element trong DOM (khi view generated source trong firebug) mà vẫn có thể tạo được hiệu ứng như khi có các attribute này.

Trả lời: ngôn ngữ javascript có các method addEventListener, removeEventListener, dispatchEvent mà các hàm bind, unbind, trigger trong jquery hay các hàm tương ứng của các thư viện javascript khác sử dụng. Thay vì đặt một attribute onclick vào một thẻ nào đó, bạn có thể dùng addEventListener để gắn sự kiện vào thẻ đó (tương tự như dùng hàm bind của jquery).
tandoigai viết 13:32 ngày 10/10/2018
Được gửi bởi VnVision
Ý người hỏi là tại sao jquery không thêm các các attribute như onclick, onfocus... vào element trong DOM (khi view generated source trong firebug) mà vẫn có thể tạo được hiệu ứng như khi có các attribute này.

Trả lời: ngôn ngữ javascript có các method addEventListener, removeEventListener, dispatchEvent mà các hàm bind, unbind, trigger trong jquery hay các hàm tương ứng của các thư viện javascript khác sử dụng. Thay vì đặt một attribute onclick vào một thẻ nào đó, bạn có thể dùng addEventListener để gắn sự kiện vào thẻ đó (tương tự như dùng hàm bind của jquery).
Cám ơn tất cả các bác, cái này đúng là câu trả lời e đang mong đợi.
ngoc_viet08 viết 13:39 ngày 10/10/2018
mún học thì đào sâu trong file jquery .js chưa nén ấy
Bài liên quan
0