dojo/dijit 失去焦点后弹出菜单不会消失

dojo/dijit popup menus do not disappear after losing focus

我正在使用 dojo 1.9.6 并发现使用 classes 和节点 dijitPopup/dijitMenuPopup 的小部件在鼠标失去该菜单的焦点后不​​会消失,这种情况很少见。菜单将保留在页面上,直到浏览器页面刷新。某些情况下,多个菜单会连续卡住,所有菜单都会一直保留,直到页面刷新。

经过一些调查,我发现在失去焦点后样式 display:none 没有应用,但是应用了 dijitMenuPassive class。我不确定 onblur 功能未正确触发是否有错误。发生这种情况时,不会出现相关的控制台错误或日志输出。观察最多(如果不是唯一)IE 10

我的问题更多是关于这是 dojo 菜单用户中记录或注意到的问题吗?关于如何修复它有什么建议吗?我在许多使用 dojo 的应用程序(以及 dojo 的多个版本)中都看到过这种情况,但这种情况很少见,而且很难找到它出现的模式。感谢您的任何见解!

问题示例: http://i.imgur.com/qykxZre.jpg

这是一个猜测,但您可能会 运行 遇到 IE 9-10 中一个罕见但臭名昭著的错误:单击一个 link,该 link 不会导航到任何地方,但也不会取消它的点击事件混淆了事件系统并导致错误的监听器为错误的事件触发。请注意,这包括 javascript: links(通常无论如何都不需要使用)。

https://connect.microsoft.com/IE/feedback/details/802397/ie9-ie10-events-can-be-sent-to-the-wrong-listeners

您可能需要搜索您的应用程序以确定这是否是您的问题,但如果是,您需要在受影响的 click 处理程序中调用 preventDefault links,或者找到一些其他方法来做你目前正在做的事情。