首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery故障?toggleClass

jQuery故障?toggleClass
EN

Stack Overflow用户
提问于 2018-04-19 19:31:26
回答 1查看 67关注 0票数 1

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

或者是它的jsfiddle?

你能看看下面的代码吗?如果是我的话,请告诉我。当您取消注释掉我注释过的那段代码时,toggleClass将停止工作。

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

代码语言:javascript
复制
$('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);
});
EN

回答 1

Stack Overflow用户

发布于 2018-04-19 19:39:50

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

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

代码语言:javascript
复制
$('input[type=checkbox]').click(function (event) { event.stopPropagation() });

或者,您可以选中/取消选中该复选框,而不触发单击,如下所示:

代码语言:javascript
复制
var checkbox = $(this).find("input[type='checkbox']")
checkbox.attr("checked", !checkbox.attr("checked"));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49920017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档