【发布时间】:2013-03-07 23:45:55
【问题描述】:
我正在尝试找到一种纯 Angular 方法来确定单击的元素是否是另一个元素的子元素。在 jQuery 中,我会使用 has() 但不确定在 Angular 中使用哪种方法,除了遍历所有子项并进行比较。
jQuery:
if($(someelement).has(another)) { };
【问题讨论】:
-
你的用例是什么?
-
我正在重新编写 Bootstrap clickover (fancy popover) 插件。我需要确定是否单击了正文,但检查它是否不是单击的弹出框本身。尝试在任意位置单击并关闭功能。在上面的代码中,'someelement' 是元素 popover div - 'another' 是从 body click 函数返回的 - github.com/lecar-red/bootstrapx-clickover/blob/master/js/… - 我没有检测到 body clicks 的问题,但是 has() 行让我很难过。跨度>
-
为什么不给
$document添加一个点击处理程序?这就是下拉切换的工作原理 - check out the code - 将它添加到弹出插件应该非常简单(如两三行代码)。 -
你支持ie
-
你可以使用 AngularJs 内置的 jqLite 提供的方法 docs.angularjs.org/api/angular.element "jqLite 是一个微小的、与 API 兼容的 jQuery 子集,它允许 Angular 操作 DOM"
标签: javascript jquery angularjs