我编写了下面的指令来关闭外部点击的<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);
});
}
}
}]);