首页  >  问答  >  正文

如何监听特定的点击事件但抑制其他的?

我的 Web 应用程序包含一个 HTML 表格,其中每一行都链接到一个特定的 URL:

<table>
  <tr data-url="https://www.google.com">
    <td>Google</td>
  </tr>
  <tr data-url="https://www.yahoo.com">
    <td>Yahoo</td>
  </tr>
</table>

这是使其工作的 Javascript:

const rows = document.querySelectorAll('table tr[data-url]');

rows.forEach(row => {
  row.addEventListener('click', function() {
    handleClick(row);
  });
});

function handleClick(row) {
  const url = row.dataset.url;
  window.document.location = url;
}

这段代码效果很好。

现在我的客户希望我向这些表格单元格添加复选框。 (我不会详细说明原因。)

如何在选中复选框时抑制重定向?

感谢您的帮助。

P粉199248808P粉199248808178 天前329

全部回复(1)我来回复

  • P粉980815259

    P粉9808152592024-04-05 11:52:20

    您可以检查事件的目标是否不是复选框。

    rows.forEach(row => {
      row.addEventListener('click', function(e) {
        if (!e.target.matches('input[type=checkbox]')) handleClick(row);
      });
    });
    

    回复
    0
  • 取消回复