javascript - 从 onclick 中排除子复选框

标签 javascript html onclick

我有以下 html 代码:

<tr class="clickable" onclick="location.href='https://www.w3schools.com'">
    <td>
        Lore ipsum
    </td>
    <td>More content</td>
    <td><input type="checkbox" name="check" value="1"></td>
</tr>

现在的问题是,当我单击复选框时,它会将我重定向到 onclick 链接。如何从 onclick 函数中排除复选框?

所有行都应该是可点击的,因此不能将 onclick 放在内容上

这是一个 fiddle :https://jsfiddle.net/Zoker/ss12zeqk/

最佳答案

我建议使用一个函数来处理这个问题。

function tr_clicked(event)
{
	var the_class = event.target.className;
  var the_node = event.target.nodeName;

  if (the_node !== "INPUT" && the_class !== "checkbox")
	{
  	alert("I'm going elsewhere");
  }
}
table {
  width: 100%;
}

tr:hover {
  cursor: pointer;
}
<table border="1">
  <tr class="clickable" onclick="tr_clicked(event)">
    <td>
      <div>
        Lore ipsum
      </div>
    </td>
    <td class="checkbox">
      <input type="checkbox" name="check" value="1">
    </td>
  </tr>
</table>

使用事件触发器,您可以查看是什么触发了事件并在必要时继续。我向复选框 td 添加了一个类,只是为了更容易验证并确保您没有单击该复选框。

关于javascript - 从 onclick 中排除子复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42873474/

相关文章:

android - Rxjava2 查看回收器适配器中的点击次数

javascript - 将焦点设置在文本框上

JavaScript - removeClass 不工作?

jQuery onclick 正文中的所有图像

javascript - 使行可点击(复选框除外)

html - 缩小标题背景而不是 100% 页面宽度

javascript - Shiny 应用程序可以在不访问服务器的情况下响应控件吗?

javascript - JavaScript 中计算多个关联数组中某个值的出现次数

javascript - 无法从 jQuery.ajax 成功函数返回值

html - 重新排序语义 ui 可堆叠网格中的列