javascript - 单击子元素时阻止父类

标签 javascript jquery html

正如您从我创建的 bootply 中看到的那样,当您单击面板中的任意位置时,输入将变为事件状态。当我单击信息按钮(橙色图标)时,它应该打开一个 Accordion ,而父项(输入)不会变为事件状态。问题是 parent 仍然变得活跃。

我可以通过添加来解决这个问题:

$('.tickets-more').click(function(){
   event.stopPropagation();
});

但这会阻止信息按钮(橙色图标)完全工作( Accordion 无法打开)。

这是没有上述代码片段的 bootply - http://www.bootply.com/ZKoCxNfMqc 这是片段 - http://www.bootply.com/WW3Ze2DEpg

最佳答案

当目标元素没有 info-sign 类时,只需添加/删除该类即可。

Updated Example

$(".ticket-selector").off('click');
$(".ticket-selector").on('click', function(e){
  if(!$(e.target).hasClass('info-sign')) {
    $(".ticket-selector").removeClass("active");
    $(this).addClass("active");
  }
});

..正如其他人已经说过的,您还应该避免将所有内容放在 label 元素中。

关于javascript - 单击子元素时阻止父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609327/

相关文章:

javascript - 编辑表单时文本字段被清除

javascript - 将图像数组从一个窗口传递到另一个窗口并在 javascript 中的新窗口中显示图像

javascript - 动态创建的按钮仅出现一次

javascript - 获取不为空的文本字段

javascript - 为什么数字在 Javascript 中是不可变的?

javascript - 简单的jquery插件,快速查看信息

javascript - 是否可以根据文本区域中的插入符位置来选择元素?

javascript - 一旦字段处于非事件状态,验证电子邮件

javascript - 在自定义元素内附加自定义元素会导致隐藏元素

javascript - 打开新标签页后 Chrome 扩展程序退出运行 javascript