Làm sao để gọi đến Class được thêm vào?

Mình thêm một Class mới cho một element bằng Jquery, sau đó mình muốn gọi đến element này thông qua Class vừa được thêm thì làm thế nào ạ.

Ở đây mình muốn khi Click vào DIV màu đỏ sẽ có alert(). Mọi người xem có cách nào giúp mình không ạ.

À, mình có bổ sung thế này : có cách viết lồng vào thế này cũng ra được kq ở trong ví dụ này nhưng khó áp dụng vào công việc thực tế của mình nên mọi người loại trừ cách này nhé:

$('.a').click(function(){
   $('.b').addClass('new-class');
   $('.new-class').click(function(){
      alert()
   })
});

Cám ơn mọi người

$('.a').click(function(){
   $('.b').addClass('new-class');
   $('.new-class').click(function(){
      alert()
   })
});

Code bạn viết như thế này là bad case:

  • mỗi khi click .a, thêm class, và lại đăng kí một sự kiện vào bộ nhớ.
    => đến lúc nào đó nó sẽ tràn, xử lí sẽ ngày càng chậm do quá nhiều event được nạp vào bộ nhớ của browser

    Vấn đề khác:
    .new-class chưa được đăng kí vào trong DOM lại loaded page time. Cho nên sử dụng lệnh gọi $('.new-class') là vô ích

Giải quyết:
kéo thằng sự kiện click new-class ra ngoài.
thay .click bằng .on(‘click’, '.new-class)

3 Likes

Bạn xem giúp mình nhé, mình cũng có thử qua cách dùng on mà ko đc:

$(document).on("click", '.new-class',function(){
      alert()
})
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?