Tôi có tệp javascript đặt EventListener là 'click' trên mọi phần tử có thẻ <article>
. Tôi muốn nhận được id của bài báo được nhấp khi sự kiện này kích hoạt. Vì lý do nào đó, mã của tôi không tạo ra gì cả!Trình xử lý sự kiện nhấp chuột Javascript trên nhiều phần tử và nhận ID mục tiêu
javascript của tôi:
articles = document.getElementsByTagName('article');
articles.addEventListener('click',redirect(e),false);
function redirect(e){
alert(e.target.id);
}
Tại sao không phải là làm việc này? BTW thiết lập bài viết của tôi là trong một chức năng gọi là khi cửa sổ được tải, và tôi biết rằng hoạt động chắc chắn bởi vì chức năng đó có những thứ khác mà làm việc.
EDIT
Vì vậy, tôi cố định mã của tôi vì thế nó sẽ lặp và thêm người nghe để mọi phần tử bài viết, và bây giờ tôi nhận được một hộp cảnh báo mà không có gì trong đó. Khi cố gắng xuất e.target không có ID, tôi nhận được thông báo sau cho mọi phần tử:
[object HTMLHeadingElement]
Bất kỳ đề xuất nào?
KHÁC EDIT
mã javascript hiện tại của tôi:
function doFirst(){
articles = document.getElementsByTagName('article');
for (var i = 0; i < articles.length; i++) {
articles[i].addEventListener('click',redirect(articles[i]),false);
}
}
function redirect(e){
alert(e.id);
}
window.addEventListener('load',doFirst,false);
này đang hiển thị hộp cảnh báo của tôi khi trang tải xong, mà không xem xét mà tôi đã không nhấp một điều chết tiệt : O
Điều này hiển thị id, nhưng trước khi tôi nhấp vào mục! làm sao tôi có thể giải quyết việc này? – arielschon12
@ arielschon12: Tôi không hiểu bạn đang cố nói gì? Bạn có nói rằng nó cho thấy cảnh báo, thậm chí không cần nhấp vào phần tử. Điều đó là không thể. –
Đó là chính xác những gì đang xảy ra. Thời điểm trang được tải, tôi nhận được các hộp cảnh báo bật lên với id của phần tử. – arielschon12