Angularjs 将多次单击绑定到$document是否存在任何问题?
我正在创建一个单页应用程序,在不同的区域有很多工具提示和弹出窗口。我通过检查单击发生的位置来关闭这些元素。对于exmaple,例如:Angularjs 将多次单击绑定到$document是否存在任何问题?,angularjs,Angularjs,我正在创建一个单页应用程序,在不同的区域有很多工具提示和弹出窗口。我通过检查单击发生的位置来关闭这些元素。对于exmaple,例如: $scope.popup1 = { open: function(){ $scope.popup1Open = true; $timeout(function(){ $document.bind('click',function(e){ if(!angular.e
$scope.popup1 = {
open: function(){
$scope.popup1Open = true;
$timeout(function(){
$document.bind('click',function(e){
if(!angular.element('#popup1-container').find(e.target).length) {
// if in directive, ill use: $elem.find(e.target).length
$timeout(function(){
$scope.popup1.close();
$scope.$apply();
});
}
});
});
},
close: function () {
$scope.popup1Open = false;
}
}
现在就像我说的,我有多个弹出窗口,可以在页面的不同区域打开。它们都有自己的ID,有些在自己的指令中。因此,每次打开弹出窗口时,我都会创建$document.bind('click')
,我不想麻烦解除它的绑定,因为它会a)影响其他弹出窗口,而且对于非常关键的区域,弹出窗口会被多次访问
因此,我的问题是,我正在做的事情是否会出现性能问题?可以解除特定事件处理程序的绑定:@tasseKATT我知道,但有时会打开多个弹出窗口并相互协作,如果我在其中一个关闭后解除单击的绑定,则其他两个不会关闭。