01/10/2018, 16:08
Xin hướng dẫn về run javascript khi đối tượng được hiển thị
Chào cả nhà, hiện mình có 1 group tabs như thế này ạ:
Một số nội dung ở tab khác, mình đang muốn chạy 1 đoạn javascript khi đối tượng ở tab khác được mở và nhìn thấy bởi người dung, mình thử add (click)=“runcode()” vào button trên tab khi ấn vào thì nó chạy nhưng code mình chạy trước khi tab được mở nên không có tác dụng, xin mọi người hướng dẫn, thanks ạ
Bài liên quan
Thay vì gán vào
onclick
(cho button), bạn gán vào sự kiệnfocus()
(cho tab) xem?Còn ko để cho chắc ăn, dùng setTimeOut đi, để 1s sau khi click để chắc chắn người dùng đã nhìn thấy chẳng hạn:
setTimeout(function(){ alert("Hello"); }, 1000);
nếu là bootstrap thì
https://www.w3schools.com/booTsTrap/bootstrap_ref_js_tab.asp
Trong Angular, để bắt sự kiện khi child view đã load xong có 2 lifecycle method:
Khi bắt đầu tạo và hiển thị component, Angular gọi
...init()
, rồi đến...checked()
sau.Sau đối mỗi lần thực hiện browser’s JS cycle thì chỉ gọi
...checked()
nếuproperty
và@Input()
thay đổi.Giờ chỉ cần dùng component class implements interface
ViewAfter
và hiện thựcngViewAffterChecked()
, gọisetTimeout(()=>{},0)
, trong callback bạn thay đổi property hay thực hiện logic nào cũng được. Lý do gọi setTimeout() để qua 1 browser cycle thì các property mới gán được (nếu không thì bị throw error).