我正在尝试创建下拉菜单的自定义指令。
这是我的代码:https://plnkr.co/edit/YqJ6tz4fwvBRmtmzeCJr
为了关闭下拉列表,我正在检查该指令元素外部的点击事件。
$document.bind('click', function() {
scope.closeDropdown();
});
但是此代码的问题是,当打开一个下拉列表并单击另一个下拉列表时,第一个下拉列表不会关闭。
点击另一个下拉菜单时如何关闭下拉菜单? 我可以通过在 Controller 中声明一个变量并每次在打开下拉列表之前进行检查来实现此目的。但这样该指令就不能独立使用。
有什么帮助吗?
最佳答案
一种方法是:
scope.toggleCheck = function(item,element){
scope.closeDropdown();
if(scope.multiSelect){
scope.multiChoice(item);
}else{
scope.singleChoice(item);
}
};
或者更好的方法:
scope.openDropDown = function () {
$('.dropdown-list').css('display','none');
elem.find('.dropdown-list').css('display','block');
};
关于javascript - 当另一个下拉菜单打开时,angularjs 下拉菜单不会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38179345/