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

阻止执行父事件处理程序

徐旻
2023-03-14
问题内容

我有一棵divs树:

<div id="a" onclick="func">
    <div id="b" onclick="func">
         <div id="c" onclick="func">
         </div>
    </div>
</div>

在div上单击时,将使其子级不可见-即单击“ a”将使“ b”和“ c”不可见。

function func{
   if ($(childId).hasClass("visible")){
    $(childId).removeClass("visible");
    $(childId).addClass("invisible");
}

问题是:单击“ b”将调用“ a”的单击,并使“ b”和“ c”不可见。如何使用jQuery禁用对“ a”的点击?

谢谢


问题答案:

您可以为孩子添加一个处理程序,以防止click事件蔓延:

function handler(event) {
    event.stopPropagation();
    // now do your stuff        
}
$('#a').add('#b').click(handler);

这样一来,点击'#b'不会传播到'#a'。都不会单击以'#c'转到'#b',因此也不会'#a'



 类似资料:
  • 我正在使用javafx创建一个扫雷克隆,如果有人玩过原始游戏,他们可能会记得当你按下一个磁贴并四处移动时,其他磁贴的行为就好像它们也在被按下一样...如果你放手-即使你最初按下的是一个完全不同的节点,你鼠标当前所在的节点也会被点击。我很难重新创建这个,我需要一些帮助。 我正在使用全局事件处理程序类,我不太确定这是好是坏......但是,让我的克隆的事件单独处理感觉很好。我尝试过在事件发生的节点上使

  • 如果我有以下代码: 对该循环中某个处理程序的所有调用是并行执行还是顺序执行?如果是顺序的,那么要获得并行执行,正确的方法是什么? 当做

  • 我在页面上有输入字段和提交按钮。 这里是jQuery代码: 我想防止模糊,如果从输入字段点击提交div,但想允许它,如果从输入字段点击页面的其他部分。我无法使用“提交”按钮。 我已竖起了小提琴。净/405kzboh/1 但是现在我甚至不明白为什么点击事件没有在模糊事件之前触发,如果有人从输入点击提交!

  • 如另一个问题中所述,当使用Undertow时,所有处理都应该在专用的工作线程池中完成,如下所示: 我知道可用于显式地告诉Undertow在专用的线程池中调度请求以阻止请求。我们可以通过将包装在实例中来修改上面的示例,如下所示: 调用此方法将exchange置于阻塞模式,并创建一个BlockingHttpExchange对象来存储流。当交换处于阻塞模式时,输入流方法变得可用,除了阻塞和非阻塞模式之间

  • 正在发生的事情: 在第8点。无论处理程序是否取消事件,由于取消检查默认为false,第二个事件已经排队。Guava的EventBus坚持在启动下一个事件之前完成当前的处理程序运行,我确信这有其用处,但这不是我想要的。 尝试黑客:

  • 问题内容: 我正在构建一个基于Netty的小型应用程序,该应用程序通过套接字连接(即telnet / ssh)执行I / O操作。我正在用Netty的类启动我的套接字服务器,给它: 类型的事件循环(即不应接受阻塞操作的共享线程池)。 一个类型的通道(我相信这必须与上面的#1相对应)。 一个非常简单的管道,带有可扩展的通道处理程序。 每当从客户端套接字连接接收到命令字符串时,都会调用我的处理程序的方