gpt4 book ai didi

javascript - 如何在 AngularJs 中关闭自定义上下文菜单?

转载 作者:行者123 更新时间:2023-12-03 04:50:56 24 4
gpt4 key购买 nike

我在 AngularJs 中制作了一个自定义上下文菜单指令。现在,当我单击自定义菜单之外的任何位置时,它应该关闭。我将单击功能绑定(bind)到关闭菜单的文档,但对于页面上具有单击事件的其他元素,已停止工作,并且只有文档单击功能正在工作。我该如何解决这个问题?我的 Angular 代码:

app.directive('preventRightClick', function() {
return {
restrict: 'A',
scope: {
visible: '='
},
link: function($scope, $ele) {
$ele.on('contextmenu', '*', function(e) {
e.preventDefault();
$scope.$apply(function () {
$scope.visible = true;
// console.log(e.pageX, e.pageY)
$('.parented').css({left:e.pageX, top:e.pageY})
})
});

$(document).on('click', '*', function (e) {
if ($(e.target).parents('.parented').length > 0) {
// console.log('yes, its parent');
// console.log($(e.target))
console.log('Within parent clicked')
}
else{
$scope.$apply(function () {
$scope.visible = false;
})
console.log('Outside parent clicked')
}
})
}
};
})

我的 HTML:

<div ng-if="isVisible" class="parented" style="display: inline-block;">
<div class="btn-group-vertical notclick" role="group" aria-label="Vertical button group">
<button type="button" class="btn btn-default">Button</button>
<button type="button" class="btn btn-default">Button</button>
</div>
</div>

最佳答案

尝试 Angular-Click-outside 插件 https://github.com/IamAdamJowett/angular-click-outside使用起来很简单,只需这样使用: <div class="menu" click-outside="closeThis()"></div>

关于javascript - 如何在 AngularJs 中关闭自定义上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42660155/

24 4 0