Javascript ng单击无法正常工作
我正在添加一个下拉菜单,但有一个错误,我正试图修复。当前,当我单击图标时,下拉列表将起作用。但是,当单击网站的其他按钮或其他区域时,下拉列表将保持打开状态。我希望它关闭。。。在这个项目中有很多代码,所以我采取了创建错误的部分。有什么建议吗 HTML:Javascript ng单击无法正常工作,javascript,html,angularjs,Javascript,Html,Angularjs,我正在添加一个下拉菜单,但有一个错误,我正试图修复。当前,当我单击图标时,下拉列表将起作用。但是,当单击网站的其他按钮或其他区域时,下拉列表将保持打开状态。我希望它关闭。。。在这个项目中有很多代码,所以我采取了创建错误的部分。有什么建议吗 HTML: 可能,您必须使用顶级的“单击”事件侦听器来关闭菜单。此外,您应该停止菜单内的“单击”事件传播。 但是,如果您使用一些现有的库或其他东西,效果会更好。请看下面的答案: 他创建自己的指令,然后在控制器上使用: app.directive('click
可能,您必须使用顶级的“单击”事件侦听器来关闭菜单。此外,您应该停止菜单内的“单击”事件传播。
但是,如果您使用一些现有的库或其他东西,效果会更好。请看下面的答案: 他创建自己的指令,然后在控制器上使用:
app.directive('clickAnywhereButHere', function($document){
return {
restrict: 'A',
link: function(scope, elem, attr, ctrl) {
elem.bind('click', function(e) {
// this part keeps it from firing the click on the document.
e.stopPropagation();
});
$document.bind('click', function() {
// magic here.
scope.$apply(attr.clickAnywhereButHere);
})
}
}
})
HTML
<div class="fa fa-ellipsis-v action-icon" ng-class="{'selected': menuActions}" ng-click="dropDownMenu()" click-anywhere-but-here="dropDownMenu()"></div>
javascript是否在控制器中?您是否在浏览器=>控制台中使用F12(开发人员工具)查看javascript错误的位置?(请记住在打开开发人员工具后刷新页面)尝试以下操作:F12=>Console=>refresh(F5)=>单击DIV=>在控制台中查看任何新的红色?抱歉,脱离主题:您应该学习如何使用开发人员工具。重要的选项卡是html的“元素”和脚本的“源”。花点时间,这绝对值得。很乐意帮忙。有时候学钓鱼总比钓到一条鱼好。
app.directive('clickAnywhereButHere', function($document){
return {
restrict: 'A',
link: function(scope, elem, attr, ctrl) {
elem.bind('click', function(e) {
// this part keeps it from firing the click on the document.
e.stopPropagation();
});
$document.bind('click', function() {
// magic here.
scope.$apply(attr.clickAnywhereButHere);
})
}
}
})
<div class="fa fa-ellipsis-v action-icon" ng-class="{'selected': menuActions}" ng-click="dropDownMenu()" click-anywhere-but-here="dropDownMenu()"></div>