DIV上的ng-blur

use*_*246 10 javascript focus blur angularjs

我试图隐藏DIV模糊(焦点已被删除DIV).我正在使用角度和引导程序.到目前为止,我已经尝试在显示DIV时设置"焦点" ,然后ng-blur在用户点击屏幕上的任何其他位置时设置功能.这不起作用.

基本上问题是我#lockerBox不能通过JS 设置焦点我的" ",hideLocker当我DIV点击它时,我的" "功能没有问题.

<div class="lock-icon" ng-click="showLocker(result); $event.stopPropagation();"></div>
<div ng-show="result.displayLocker" id="lockerBox" ng-click="$event.stopPropagation();" ng-blur="hideLocker(result)" tabindex="1">

  $scope.displayLocker = false;
  $scope.showLocker = function ( result ) {

    $scope.displayLocker = !$scope.displayLocker;
    node.displayLocker = $scope.displayLocker;

    function setFocus() {
      angular.element( document.querySelector( '#lockerBox' ) ).addClass('focus');
    }

    $timeout(setFocus, 100);
  };


  $scope.hideLocker = function ( node ) {
    $scope.displayLocker = false;
    node.displayLocker = $scope.displayLocker;
  };
Run Code Online (Sandbox Code Playgroud)

URL*_*L87 22

只需添加tabindex="-1"attr到div它就会给它带来与输入相同的行为 -

<div tabindex="-1" ng-blur="onBlur()"></div>
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/ast12nLf/1/

(灵感来自这里 - /sf/answers/1192971671/)


use*_*246 0

我最终只是在具有 onclick 的元素上设置模糊事件。