Tôi đang cố gắng tạo một chỉ thị cho một trình đơn thả xuống, miễn là tôi đang làm việc với một tài khoản. Tôi có thể phát hiện nhấp chuột bên ngoài thả xuống bằng cách sử dụng mã sau:Đóng menu thả xuống khi lần thứ hai được mở/tài liệu.Nhấp vào bị chặn bằng cách nhấp vào Góc 5
@HostListener('document:click', ['$event'])
onDocumentClick(event: any): void {
console.log("document click");
// close
}
@HostListener('click')
onClick(): void {
console.log('click on ');
// toggle
}
Sự cố xảy ra khi có 2 trình đơn thả xuống được tạo. Tôi muốn đóng cửa sổ thả xuống đầu tiên khi thứ hai được mở ra, tuy nhiên khi tôi nhấp vào menu thả xuống thứ hai, chỉ sự kiện "nhấp" được kích hoạt và "document.click" không được thực hiện. Tôi hy vọng rằng cả hai sự kiện sẽ xảy ra trừ khi tôi sử dụng rõ ràng preventDefault khi nhấp nhưng dường như điều này xảy ra tự động.
Phương pháp tiếp cận đúng trong Angular 5 là gì để đóng menu thả xuống đầu tiên khi lần thứ hai được mở?
Cảm ơn, nhưng "nhấp chuột bên trong" không được kích hoạt" -> if (this._element.nativeElement.contains (event.target)) { console.log ('click on'); } không hoạt động –
Bạn có gặp lỗi hoặc đơn giản là không nhận được bên trong if? –
Không có lỗi, chỉ đơn giản là không nhận được bên trong –