01/10/2018, 15:06

Cho mình hỏi 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()
   })
});

CodePen

WzMoze

...

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

Dark.Hades viết 17:11 ngày 01/10/2018
$('.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)

Thinh Minh Ha viết 17:10 ngày 01/10/2018

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)

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

CodePen

BrYWLw

...

Dark.Hades viết 17:16 ngày 01/10/2018
$(document).on("click", '.new-class',function(){
      alert()
})
Bài liên quan
0