javascript - jQuery 故障?切换类

标签 javascript jquery css

我正在学习 javascript 和 jQuery 并且遇到了一个奇怪的故障,除非我做错了什么?

或者可能是它的 jsfiddle?

你能看看下面的代码,让我知道是不是我吗?当您取消注释我注释过的代码部分时,toggleClass 将停止工作。

https://jsfiddle.net/0y4neucq/5/

$('tr.discrepancy').click(function(event) {
    $(this).toggleClass("highlight");
    /*var clicked = event.target.nodeName;
  if (clicked != "INPUT") {
    $("input[type='checkbox']", this).trigger("click");
  }*/

  $('p').html(clicked);
});

最佳答案

这是因为当您在复选框上 .trigger("click") 时,它会再次触发 $('tr.discrepancy').click() 处理程序,这是因为事件在链条上冒泡。你可以在这个 fiddle 的控制台中看到这个,我在其中添加了一个 console.log:https://jsfiddle.net/0y4neucq/11/

您可以通过添加点击处理程序并调用 event.stopPropagation() 来阻止对复选框的点击向上传播。

$('input[type=checkbox]').click(function (event) { event.stopPropagation() });

或者您可以在不触发点击的情况下选中/取消选中复选框,如下所示:

var checkbox = $(this).find("input[type='checkbox']")
checkbox.attr("checked", !checkbox.attr("checked"));

关于javascript - jQuery 故障?切换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49920017/

相关文章:

javascript - Android - 键盘覆盖输入框 - 即使在 Chrome 浏览器中

javascript - 创建具有悬停效果的响应式图像映射

php - 有 PHP -> jQuery 库吗?

javascript - 在数据变化时使用 Angular 动画集合的第一个元素

python - 在 CSS 文件中使用 Django 变量

android - 如何将 android Textview 元素居中放置在屏幕底部

jquery - Css JQuery 不适用于 IE8

javascript - 如何让同域 iframe 禁用同域脚本

javascript - Bootstrap 单选按钮切换问题

javascript - 当用户特别选择一项时,JQUERY 使复选框项禁用