当前位置: 首页 > 面试题库 >

如何停止复选框上的事件冒泡

广瑞
2023-03-14
问题内容

我有一个复选框,希望对click事件执行一些Ajax操作,但是该复选框也位于容器内,它具有自己的单击行为,当单击该复选框时,我不想运行该行为。此示例说明了我要执行的操作:

$(document).ready(function() {

  $('#container').addClass('hidden');

  $('#header').click(function() {

    if ($('#container').hasClass('hidden')) {

      $('#container').removeClass('hidden');

    } else {

      $('#container').addClass('hidden');

    }

  });

  $('#header input[type=checkbox]').click(function(event) {

    // Do something

  });

});


#container.hidden #body {

  display: none;

}


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<div id="container">

  <div id="header">

    <h1>Title</h1>

    <input type="checkbox" name="test" />

  </div>

  <div id="body">

    <p>Some content</p>

  </div>

</div>

但是,我不知道如何在不导致默认点击行为(复选框变为选中/未选中)的情况下停止事件冒泡。

以下两项都停止了事件冒泡,但也没有更改复选框状态:

event.preventDefault();
return false;

问题答案:

更换

event.preventDefault();
return false;

event.stopPropagation();

event.stopPropagation()

停止将事件冒泡到父元素,从而防止任何父处理程序收到该事件的通知。

event.preventDefault()

阻止浏览器执行默认操作。使用isDefaultPrevented方法可以知道是否曾经(在该事件对象上)调用过此方法。



 类似资料:
  • 问题内容: 因此,我遇到的问题似乎是仅在Linux上发生的错误。我正在尝试在按下某个键时记录我的swing应用程序,然后检测该键何时被释放。现在不应该有问题,因为KeyListener应该可以为我处理这个问题。 问题是,当我按下键时,会得到很多重复的keyPressed()/ keyReleased()事件,而不仅仅是单个keypressed()事件。有谁知道在Linux上何时真正发布密钥的解决方

  • 环境: PrimeFaces 6.1 JSF 2.2 Tomcat 7.0.23 Java1.7。0_79 实现了一个带有复选框选择的TreeTable,并且需要分别防止父节点和子节点的选择向上和向下传播以进行客户端和服务器端处理。 示例树: 父节点 --子节点1 --子子节点1.1 --子节点2 ----子子节点2.1 所需行为:选择节点时,只应选中该节点的复选框。 实际行为(开箱即用): 选择

  • 问题内容: 是否有一种内置的方法来阻止事件进入作用域链? 由事件传递的事件对象没有方法(如$ rootScope上 的文档所述。)但是,此合并的pull请求表明事件可以对其进行调用。 问题答案: 来自angularJS 1.1.2源代码的片段: 如您所见,$ broadcast中的事件对象没有“ stopPropagation”。 可以使用preventDefault代替stopPropagati

  • 本文向大家介绍jQuery如何防止这种冒泡事件发生,包括了jQuery如何防止这种冒泡事件发生的使用技巧和注意事项,需要的朋友参考一下 冒泡事件就是点击子节点,事件会向上传递,最后触发父节点,祖先节点的点击事件。 html代码部分: jQuery代码如下: 当点击span时,会触发div与body 的点击事件。点击div时会触发body的点击事件。 如何防止这种冒泡事件发生呢?修改如下:     

  • 本文向大家介绍利用JQuery阻止事件冒泡,包括了利用JQuery阻止事件冒泡的使用技巧和注意事项,需要的朋友参考一下 冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。 我们在平时的开发过程中,肯定会遇到在一个div(这个div可以是元素)包裹一个div的情况,但是呢,在这两个div上都添加了事件,如果点击里面的div我们希望处理这个div的事件,但是呢,我们不希望外层的div的事件

  • 我有一个像标志一样的布尔字段来声明表中的行是否被删除。它使用复选框显示,因此如果数据已被删除,复选框值为true,反之亦然。 以下是显示表格的代码: 在表中,我可以单击复选框,但我不知道如何处理单击事件,因为我使用数据来显示数据。如何处理复选框事件使用可数据?