2015-02-10 69 views
3

我有一個簡單的下拉菜單,它顯示單擊按鈕時隱藏的按鈕,當點擊下拉菜單中的某個按鈕或用戶單擊該頁面上的其他任何地方時隱藏該按鈕。代碼在Chrome中工作,但不在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從來沒有焦點,這樣就永遠不會模糊。它隱藏在他內部的div下面。設置z-index:1500沒有幫助。

回答

1

根據angularjs源代碼,NG-模糊旨在被以下元件中使用:

窗口,輸入,選擇,文本區域,一個

也許你可以替換「部'by'a'並在ie11中再次嘗試?

'a'css可以使用樣式屬性進行配置。

+0

有趣的。你可以在源代碼中提供URL給該文件嗎?如果這是真的,爲什麼在鉻它正在工作? – szpic 2015-02-10 08:41:06

+1

https://github.com/angular/angular.js/blob/master/src/ng/directive/ngEventDirs.js#L400 – Manube 2015-02-10 08:42:01

+0

至於爲什麼它在一個瀏覽器中,而不是另一個:我沒有線索 – Manube 2015-02-10 08:42:57

0

Tabinidex應該解決這個問題。 對於它的工作,包含tabindex屬性的每個元素都應該具有大於0的精確唯一編號。

在您的情況下,由於您使用的是tabindex = 0,因此我將假設不工作。如果將其切換爲1,則它可能會工作,如果在代碼中沒有其他任何位於tabindex = 1的元素。

我們面臨同樣的問題,對我們來說是什麼工作是在正文中使用tabindex屬性作爲1,並從我們包含ng-blur的元素中刪除所有tabindex屬性。

欲瞭解更多信息:tabindex

相關問題