Tôi có một danh sách các nút (hình vuông) trong HTML như thế này -Làm thế nào để thêm xử lý sự kiện cho nút HTML từ bên trong mã javascript
<td><button id="18" ></button></td>
<td><button id="28" ></button></td>
<td><button id="38" ></button></td>
...
Trước đó, đối với mỗi nút, tôi đã phải đặt mã trong nút tự thêm thẻ để thêm trình xử lý sự kiện, như thế này -
<button id="18" onclick="squareWasClicked(event)">
function squareWasClicked(event)
{
var element = event.target;
// more code
}
Nhưng bây giờ tôi đã phát hiện ra rằng nó không phải là thực hành tốt. Vì vậy, thay vào đó, tôi đang cố gắng thêm xử lý sự kiện từ bên trong mã javascript của tôi. Nhưng tôi không biết làm thế nào để làm điều đó. Cho đến nay, tôi đã thử điều này -
function assignEventsToSquares()
{
var i,j;
for(i=1;i<=8;i++)
{
for(j=1;j<=8;j++)
{
var squareID = "" + i + "" + j;
var square = document.getElementById(squareID);
square.onclick = squareWasClicked();
}
}
}
Nhưng điều này chỉ đơn giản gọi hàm squareWasClicked(). Vì vậy, làm thế nào để tôi thêm nó như là một xử lý sự kiện để các chức năng sẽ được gọi khi vuông được nhấp? Ngoài ra, làm cách nào để nói điều gì đó giống như
square.onclick = squareWasClicked(event);
sự kiện không được phát hiện trong mã JavaScript. Hãy giúp tôi.
Cảm ơn! Điều đó thật ngắn gọn! Tại sao lại sử dụng addEventListener? Đó là cú pháp cũ hơn? – CodeBlue
'addEventListener' là một cú pháp * mới hơn * (xuất hiện trong DOM 2, trái với trình nghe DOM 0 bạn đang cân nhắc.) Nếu bạn không sử dụng DOM 2, bạn đang bỏ lỡ! :) –