当我在div之外点击时想要关闭div时,这是jquery的事情。
$(document).on("click", function (e) {
if (e.target.id != "user-login-top" && !$(e.target).closest("#user-login-wrapper").length) {
$("#user-login-wrapper").removeClass("wide");
}
});
棱角分明的是什么? Fiddle
非常感谢答案 0 :(得分:0)
通过实施自定义指令,在顶部菜单外单击将隐藏右侧边栏。
看看这个:http://jsfiddle.net/zqdmny41/20/
app.controller('mainCtrl', function ($scope) {
// Add a function to hide the right sidebar.
$scope.hideSideMenu = function() {
$scope.bodyCon = false;
$scope.noneStyle = false;
}
...
})
.directive("outsideClick", ['$document', function( $document){
return {
link: function( $scope, $element, $attributes ){
var scopeExpression = $attributes.outsideClick,
onDocumentClick = function(event){
if(event.target.id != 'rightMenu' && event.target.id != 'toggle-menu') {
$scope.$apply(scopeExpression);
}
};
$document.on("click", onDocumentClick);
$element.on('$destroy', function() {
$document.off("click", onDocumentClick);
});
}
}
}]);
在您的HTML中:
<aside class="rightbar" id="rightMenu" ng-class="{'noneStyle' : noneStyle}" outside-click="hideSideMenu()">
效果是:
基本逻辑是:
outside-click="hideSideMenu()"
hideSideMenu
传递给指令,该指令将click
事件添加到文档中。 rightMenu
而不是toggle-menu
,则会隐藏右侧边栏。参考:http://vadimpopa.com/onblur-like-for-a-div-in-angularjs-to-close-a-popup/