Javascript全局(正文)单击事件注册在Safari中不起作用

时间:2019-06-26 22:13:41

标签: javascript angularjs safari dom-events

Android和Chrome事件正常运行,请尝试以下选项:

$null

我仔细检查并在Safari中启用了Javascript;也可以尝试使用以下angularjs指令:

$window.onclick = function () {
   if ($scope.accountsMenuOpen) {
       $scope.accountsMenuOpen = false;
       $scope.$apply();
   }
};

document.body.addEventListener('click', function () {
  if ($scope.accountsMenuOpen) {
       $scope.accountsMenuOpen = false;
       $scope.$apply();
   }
});

document.querySelector('body').addEventListener('click', function () {
   if ($scope.accountsMenuOpen) {
       $scope.accountsMenuOpen = false;
       $scope.$apply();
   }
});

我只是在Safari中调试,某些元素(其中的元素在ng-controller上下文中)触发了click事件。我不知道为什么没有在所有身体元素中注册。

1 个答案:

答案 0 :(得分:1)

在深入研究了触摸事件之后,可以在野生动物园中进行一次旅行,感谢Carcigenicate的提示

document.body.addEventListener('touchend', function () {   
  if ($scope.accountsMenuOpen) {
     $scope.accountsMenuOpen = false;
     $scope.$apply();
  }
});