01/10/2018, 14:18
Tại sao sự kiện Hover không áp dụng được cho Element thêm vào sau này
Chào mọi người, mình đang làm 1 bảng có thêm chức năng thêm sửa xóa dòng
Bình thường khi hover chuột vào dòng nào thì sẽ hiện lên cái option
bên phải cho người dùng tùy chọn.
Nhưng nếu mình Add thêm dòng mới thì khi hover chuột vào dòng mới đó lại không hiển thị cái option bên phải nữa.
Mọi người có thể xem giúp mình do lỗi ở đâu không ?
https://jsfiddle.net/qtjpd69q/
Bài liên quan
Hôm qua chắc mọi người bận coi đá bóng nên ít vô diễn đàn. Mình thêm comment mới để anh em vào đọc và coi giúp mình với nghen.
Có cao thủ nào biết không, mình vẫn chưa tìm được ra lỗi gì
https://jsfiddle.net/daoan1412/6vp2r6z7/
Do bạn append mà jquery ko bind event hover theo nên bị lỗi, m ko chuyên jquery lắm sửa như trên ko biết đã đúng ý chưa?
Bạn có thể giải thích câu lệnh này ý nghĩa là thế nào không ạ:
Tại vì thường mình đọc tài liệu chỉ hay gặp cách viết thế này thôi :
chứ như câu lệnh bạn viết quả thực mình chưa gặp trường hợp này bao giờ.
Mình chỉ đoán là : khi đưa chuột vào vùng
tbody
thìtr
sẽ thực hiện lệnh code bên trong function() còn khi đưa chuột ra ngoài thì không thực hiện gì cả .Mình đoán vậy … nhưng không biết đúng không ???
Còn nữa,cái này:
Mình cũng chưa thực sự hiểu rõ, xin bạn cho mình thêm một vài câu phân tích hoặc keyword để mình tự tìm hiểu cũng được.
=> Cám ơn bạn rất nhiều
Hiểu cơ bản là khi trình duyệt thực hiện render trang, nó quét js và html, nó quét Jquery thì sẽ thực hiện bind tất cả những cái
$(xxxxElements)
vào bộ nhớ, và nó chỉ load 1 lần duy nhất với toàn bộ đối tượng đã được add vào DOM tại thời điểm render, thời điểm về sau nó sẽ không nhận biết được cái phần tử bạn mới add vào nên trở thành vô hiệu.Còn :
Có nghĩa là nó cũng bind tất cả những gì mà nằm trong
<tbody>
, vì nó chỉ care đến các event liên quan tới<tbody>
nên dù bạn thêm trước hay sau, trình duyệt vẫn hiểu và xử lí.bạn có thể tham khảo thêm ở đây http://api.jquery.com/on/