2015-02-10 4 views
3

У меня есть простой раскрывающийся список, который показывает, когда нажата кнопка и скрывается, когда нажата кнопка в раскрывающемся списке или щелкнет по всему миру на странице. Код работает в хроме, но не в IE. Это выглядит как ng-blur Событие на section никогда не срабатывает, то естьNgBlur не стреляет в Internet explorer

Я использую IE11 и AngularJS 1.2.3. Код работает отлично в Chrome. Метод

// some other html here 
<section tabindex="0" ng-blur="menu.isOpen=false"> // main section 
    <div ng-click="toggle()"> 
     <div>button</div> //button opening dropdown 
    </div> 
    <div ng-show="menu.isOpen"> 
     <div> 
      <ul> 
       <li name="Sign Off" ng-click="toggle()">Sign off</li> 
      </ul> 
     </div> 
    </div> 
</section> 
// here rest of page 

тумблер() прост:

menu.isOpen=!menu.isOpen; 

UPDATE:

после еще больше расследования я знаю, что section никогда не получить фокус, так что никогда не размытости. Это как-то скрыто под кустами внутри него. Установка z-index:1500 не помогла.

ответ

1

Согласно angularjs исходного кода, нг-размытости предназначен для использования на следующих элементах:

окна, ввод, выберите текстовое поле, а

Может быть, вы могли бы заменить «раздел 'by' a 'и повторите попытку в ie11?

«a» css может быть настроен с атрибутом стиля.

+0

Интересно. Не могли бы вы указать URL-адрес этого файла в исходном коде? Если это правда, почему в хроме работает? – szpic

+1

https://github.com/angular/angular.js/blob/master/src/ng/directive/ngEventDirs.js#L400 – Manube

+0

о том, почему он работает в одном браузере, а не в другом: у меня нет clue – Manube

0

Tabinidex должен решить проблему. Чтобы он работал, каждый элемент, содержащий атрибут tabindex, должен иметь уникальный номер, отличный от 0.

В вашем случае я предполагаю, что он не работает из-за того, что вы используете tabindex = 0. Если вы переключите его на 1, он может работать, если у вас нет другого элемента с tabindex = 1 в другом месте кода.

Мы столкнулись с той же проблемой, и для нас работало использование атрибута tabindex как 1 в теле и удаление всех атрибутов tabindex из наших элементов, содержащих ng-blur.

Для получения дополнительной информации: tabindex

Смежные вопросы