如果元素可见,则应用Angular JS Directive

时间:2015-06-15 08:00:25

标签: angularjs angularjs-directive

我编写了下面的指令来关闭外部点击的<a>元素,如果元素可见,我希望这个指令开始执行;目前它正在对文档上的每个点击事件执行,尽管元素是否可见。

app.directive("outsideClick", ['$document','$parse', function( $document, $parse ){
            return {
                link: function( $scope, $element, $attributes ){
                    var scopeExpression = $attributes.outsideClick,
                        onDocumentClick = function(event){
                            var isChild = $element.find(event.target).length > 0;
                            if(!isChild) {
                                    $scope.$apply(scopeExpression);
                            }
                        };

                    $document.on("click", onDocumentClick);

                    $element.on('$destroy', function() {
                        $document.off("click", onDocumentClick);
                    });
                }
            }
        }]);

0 个答案:

没有答案