如何从JavaScript代码中向HTML按钮添加事件处理程序

fbcarpbf  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(121)

我有一个按钮列表(广场)在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代码中未检测到事件。请帮助。

wa7juj8i

wa7juj8i1#

使用element.addEventListener()(源自DOM 2 Events spec)。

document.getElementById("18").addEventListener("click", squareWasClicked, false);
8yparm6h

8yparm6h2#

square.onclick = squareWasClicked();

这将调用click函数并将结果分配给元素的事件侦听器,这不是您想要的。删除() s,以便函数本身被分配。因此,它应该如下所示

square.onclick = squareWasClicked;

相关问题