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

时间:2015-06-18 15:37:03

标签: drop-down-menu menu dojo

我正在使用dojo 1.9.6并且在小鼠失去该菜单的焦点后,发现在极少数情况下使用具有节点dijitPopup/dijitMenuPopup的类的小部件不会消失。菜单将保留在页面上,直到刷新浏览器页面。在某些情况下,多个菜单会连续停滞,并且一直保留到页面刷新为止。

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

我的问题更多的是这是dojo菜单用户中记录或注意到的问题吗?有什么建议如何解决它?我在许多使用dojo的应用程序(以及dojo的多个版本)中见证了这一点,但这种情况很少见,并且发现它发生的模式很困难。感谢您的任何见解!

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

1 个答案:

答案 0 :(得分:0)

这是一个猜测,但你可能会在IE 9-10中遇到一个有点罕见但臭名昭着的错误:点击一个没有导航到任何地方但也没有取消其点击事件的链接会混淆事件系统并导致错误的听众为错误的事件开火。请注意,这包括$varProduct = array ( array("Title" , 10213 , 100, 0,0,1,1,0, "/womens/tops/s/2.png", "/womens/tops/s/2.jpg", "/womens/tops/s/2.jpg", 50 ), array("Title" , 10213 , 100, 0,0,1,1,0, "/womens/tops/s/2.png", "/womens/tops/s/2.jpg", "/womens/tops/s/2.jpg", 50 ) ); 链接(通常不需要使用它们)。

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

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