Ng Blur没有在Internet Explorer中解雇

时间:2015-02-10 07:07:36

标签: javascript html angularjs internet-explorer

我有一个简单的下拉列表,显示何时单击按钮并隐藏时间 单击下拉列表中的按钮或用户单击页面上的其他位置。代码正在使用chrome但不在IE中。看起来ng-blur上的section事件永远不会触发,即

我使用的是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

toggle()方法很简单:

menu.isOpen=!menu.isOpen;

更新:

经过更多的调查,我知道section永远不会得到焦点,所以它永远不会变得模糊。它以某种方式隐藏在他内心的div之下。设置z-index:1500没有帮助。

2 个答案:

答案 0 :(得分:2)

根据angularjs源代码,ng-blur意在用于以下元素:

  

窗口,输入,选择,textarea,a

也许你可以用'a'替换'section'并在ie11中再试一次?

可以使用样式属性配置&#39;'css。

答案 1 :(得分:0)

Tabinidex 应解决此问题。 要使其工作,包含tabindex属性的每个元素都应该具有比0更大的secuential唯一编号。

在你的情况下,由于你使用tabindex = 0,我将假设不起作用。如果将其切换为1,如果您在代码中的其他位置没有tabindex = 1的其他元素,则它可能会起作用。

我们面临同样的问题,对我们有用的是在正文中使用tabindex属性为1,并从包含ng-blur的元素中删除所有tabindex属性。

有关详细信息:tabindex