我有一个按钮列表(广场)在HTML像这样-
<td><button id="18" ></button></td>
<td><button id="28" ></button></td>
<td><button id="38" ></button></td>
...
之前,对于每个按钮,我必须在按钮标记本身中放置代码来添加事件处理程序,如下所示:
<button id="18" onclick="squareWasClicked(event)">
function squareWasClicked(event)
{
var element = event.target;
// more code
}
但现在我发现这不是一个好的做法。所以,我尝试从我的JavaScript代码中添加事件处理程序。但我不知道如何做到这一点。到目前为止,我已经尝试过了:
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();
}
}
}
但这只是调用了squareWasClicked()
函数。那么我如何将其添加为事件处理程序,以便在单击正方形时调用该函数?还有,我如何说:
square.onclick = squareWasClicked(event);
在JavaScript代码中未检测到事件。请帮助。
2条答案
按热度按时间wa7juj8i1#
使用element.addEventListener()(源自DOM 2 Events spec)。
8yparm6h2#
这将调用click函数并将结果分配给元素的事件侦听器,这不是您想要的。删除
()
s,以便函数本身被分配。因此,它应该如下所示