[英]NgBlur not firing in Internet explorer
我有一个简单的下拉列表,显示单击按钮时的效果,并在单击下拉列表中的按钮或用户单击页面上的其他位置时隐藏。 代码正在使用chrome但不在IE中。 它看起来像该section
ng-blur
事件永远不会发射ie
我正在使用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
没有帮助。
根据angularjs源代码,ng-blur意在用于以下元素:
窗口,输入,选择,textarea,a
也许你可以用'a'替换'section'并在ie11再试一次?
'a'css可以配置样式属性。
Tabinidex应该解决这个问题。 要使其工作,包含tabindex属性的每个元素都应具有比0更大的secuential唯一编号。
在你的情况下,由于你使用tabindex = 0,我将假设不起作用。 如果将其切换为1,如果您在代码中的其他位置没有tabindex = 1的其他元素,则它可能会起作用。
我们面临同样的问题,对我们有用的是在主体中使用tabindex属性为1,并从包含ng-blur的元素中删除所有tabindex属性。
有关更多信息: tabindex
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.