2014-11-21 63 views
3

我正在使用ui.bootstrap摺疊指令來顯示下拉菜單。 我想在用戶點擊div之外時自動摺疊它。angularjs ng-blur在Chrome或Firefox中不起作用

當用戶點擊過濾器按鈕我設置集中使用:

.directive('setFocus', function() { 
     return { 
      restrict: 'A', 
      scope: { 
       focusValue: "=setFocus" 
      }, 
      link: function ($scope, $element, attrs) { 
       $scope.$watch("focusValue", function (currentValue, previousValue) { 
        if (currentValue === true && !previousValue) { 
         $element[0].focus(); 
         console.log('set focus from setFocus directive'); 
        } else if (currentValue === false && previousValue) { 
         $element[0].blur(); 
         console.log('blurr from setFocus directive'); 
        } 
       }) 
     } 
     } 
}); 

HTML

<div collapse="isDropDownCollapsed" class='div2' align-element-right='el1' set-focus='!isDropDownCollapsed' ng-blur="toggleMenu()"> 

控制器

app.controller('testCtrl', function ($scope) { 
$scope.isDropDownCollapsed = true; 
$scope.toggleMenu = function() { 
    $scope.isDropDownCollapsed = !$scope.isDropDownCollapsed; 
} 

});

它在IE v11中有效,但選中複選框時焦點也會丟失。 它在Chrome v38或Firefox v33.1中不起作用。

example code

回答

相關問題