javascript - 如何比较 Angular 元素与 jQuery 元素

标签 javascript jquery angularjs angularjs-directive

我需要实现点击外部隐藏下拉指令,所以我有这样的代码:

    $(document).click(function(e) {
        var selector = $(e.target).closest('.time-selector');
        if (!selector.length) { // || !selector.is(element)) {
            if ($scope.$$phase) {
                $scope.show = false;
            } else {
                $scope.$apply(function() {
                    $scope.show = false;
                });
            }
        }
    });

但是当我点击不同的 .timer-selector 元素时它不起作用(不隐藏),我尝试测试 !selector.is(element) 但这不起作用。

那么如何测试我的 jQuery 选定元素是否与 angular 指令元素是同一个 DOM 节点?

不知道这是否相关,但我的指令没有replace

最佳答案

找到解决方案,在我的例子中,我的元素是我的指令标签而不是 .time-selector,所以这段代码解决了问题:

    $(document).click(function(e) {
        var selector = $(e.target).closest('.time-selector');
        if (!element.find('.time-selector').is(selector)) {
            if ($scope.$$phase) {
                $scope.show = false;
            } else {
                $scope.$apply(function() {
                    $scope.show = false;
                });
            }
        }
    });

关于javascript - 如何比较 Angular 元素与 jQuery 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24678857/

相关文章:

javascript - antd:需要改变折叠体的背景颜色

javascript - 如何使用本地存储将我的输入框值存储到另一个输入框

javascript - AngularJS $ViewContentLoaded : Any way to make it animate differently depending on UI-Router State?

angularjs - 如何将变量传递给 ng-init 调用?

angularjs - 使用 Angular 设置 float/double 格式

javascript - Jquery 可排序功能在 WordPress 中不起作用

javascript - Angular ui-router 防止指令内的状态触发

javascript - 附加到不同类型的调用中的函数

javascript - 更改另一个下拉选项时隐藏下拉选项

javascript - grunt-serve 不提供带有 '/' 请求的 index.html