AngularJs中最接近的jQuery函数的等价物是什么

What is the equivalent of .closest jQuery function in AngularJs?

本文关键字:等价物 是什么 函数 jQuery 最接近 AngularJs      更新时间:2023-09-26

我正在尝试在Angular中实现一个自定义弹出窗口。问题是当打开弹出窗口时点击外部时,我不知道如何在没有覆盖的情况下轻松实现它。我发现在基于jQuery的库中,通常使用.closest函数来实现这一点,但我找不到简单的Javascript方式的替代方法。

您的任务并不需要closest方法。为了能够在点击它之外的任何地方时关闭弹出窗口,您应该在body(或document)元素上绑定一个点击事件处理程序,如果在那里检测到该事件,则只关闭弹出窗口。

它将起作用,因为点击事件在DOM树中冒泡,最终到达最顶层的元素,例如body

然后,当事件在弹出窗口内初始化时,您确保防止事件传播,因为您不会点击事件到达主体(如果处理了,弹出窗口将关闭)。为此,您在popup容器上再绑定一个点击事件,当它发生时,您可以防止其进一步传播:

e.stopPropagation();

因此,当你与弹出窗口及其内容交互时,点击内部,做一些事情,点击事件永远不会到达主体,所以弹出窗口永远不会关闭。但一旦您在弹出窗口之外点击,冒泡点击事件将由body处理程序处理,并将关闭弹出窗口。