ng-blur auf ein DIV

Ich versuche zu verstecken DIV auf Unschärfe (Fokus entfernt wurde, aus der DIV). Ich bin mit angular und bootstrap. Bisher habe ich versucht die Einstellung "Fokus" auf die DIV wenn es gezeigt wird und dann ein ng-blur Funktion, wenn der Benutzer klicken Sie irgendwo auf dem Bildschirm. Das wird nicht funktionieren.

Grundsätzlich das problem ist, ich kann nicht setzen Sie den Fokus auf meine "#lockerBox" durch JS, meine " hideLocker " - Funktion kein problem, wenn sich der Fokus meiner DIV mit dem Sie es anklicken.

<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;
  };
  • Haben Sie versuchen, übergeben $event zu Ihrem hideLocker und dann aufrufen $event.Ziel.focus()? Ich würde auch loszuwerden, die stopPropagation Geschäft, es sei denn, Sie es wirklich brauchen.
  • Nein, das Ziel könnte sein, alle anderen Elemente auf dem Bildschirm. Ich muss den Fokus in die "showLocker" - Funktion. Und das element, das ist das Ziel dieser Veranstaltung ist ein weiterer DIV-unabhängig von der DIV, die ich brauche, um zu fokussieren.
  • Was ist ng-Fokus und ein Grundstück, auf Ihre view-Modell? Wenn man eine ng-Fokus auf das richtige element dann alles, was Sie tun müssen, ist zu ändern Sie Ihr Modell.
  • warum sind Sie mit Schärfe und Unschärfe auf div Elemente, die nicht contenteditable? Was ist das Ziel?
InformationsquelleAutor user1876246 | 2014-07-16
Schreibe einen Kommentar