IE中的Grails UI菜单片状行为

IE中的Grails UI菜单片状行为,grails,yui,grails-plugin,Grails,Yui,Grails Plugin,我使用的是GrailsUI1.2-SNAPSHOT,它是YUIMenuBarYUI2.7.0.1的实现。我看到IE Firefox中的鼠标悬停行为是正常的。当我将鼠标移到带有子菜单的菜单项上时,它将显示。当我尝试将鼠标悬停在子菜单上时,子菜单在我单击之前消失。这种情况的发生方式我还没有完全弄清楚。通常,我第一次选择一个菜单是可以的,但是如果我在菜单上移动回到一个菜单项,子菜单开始显示这种行为。通过点击并按住鼠标按钮,我通常可以使子菜单保持不变 我使用过各种配置,如keepopen和automen

我使用的是GrailsUI1.2-SNAPSHOT,它是YUIMenuBarYUI2.7.0.1的实现。我看到IE Firefox中的鼠标悬停行为是正常的。当我将鼠标移到带有子菜单的菜单项上时,它将显示。当我尝试将鼠标悬停在子菜单上时,子菜单在我单击之前消失。这种情况的发生方式我还没有完全弄清楚。通常,我第一次选择一个菜单是可以的,但是如果我在菜单上移动回到一个菜单项,子菜单开始显示这种行为。通过点击并按住鼠标按钮,我通常可以使子菜单保持不变

我使用过各种配置,如keepopen和automenudisplay,但它们似乎没有改变行为。我没有看到很多关于这个的帖子。但我也没有看到UI插件中记录的菜单。如果用户界面菜单还没有准备好进入黄金时间,或者我错过了其他东西,我真的可以使用一些反馈。我以前很少使用AJAX

下面是我使用的添加选项的代码,这些选项没有产生积极的影响

<gui:menubar id='menubar' renderTo='mainmenu' autosubmenudisplay="false" shadow="true" keepopen="true">
<gui:menuitem url="/esmzone">Home</gui:menuitem>
        <gui:submenu label='Profile'>
            <gui:menuitem url="${createLink(controller:'memberProfile', action:'view')}">View</gui:menuitem>
            <gui:menuitem url="${createLink(controller:'memberProfile', action:'profile')}">Edit</gui:menuitem>
            <gui:menuitem url="${createLink(controller:'user', action:'account')}">Settings</gui:menuitem>
            <gui:menuitem url="#">Subscription</gui:menuitem>
        </gui:submenu>
以下是插件生成的代码:

<script>
YAHOO.util.Event.onDOMReady(function() {
    GRAILSUI.menubar = new YAHOO.widget.MenuBar("menubar_div", {'autosubmenudisplay':  false,
'shadow': true,
'keepopen': true});
    GRAILSUI.menubar.render('mainmenu');
});
</script>

我通过研究YUI图书馆在这方面取得了一些进展。IE7有一个记录在案的bug。显然GrailsUI插件没有解决这个问题。我正在用IE8进行测试,但我认为它仍然存在

http://developer.yahoo.com/yui/menu/#knownissues
对于bd类,似乎应该将zoom属性设置为1 zoom:1。 我在样式表中添加了以下代码

div.yuimenubar .bd {
zoom: 1;
}
这似乎有帮助。我在Firefox中没有看到任何副作用,但我没有动态检查浏览器的版本,因为我需要破解生成YUI javascript的代码并将其放入

if (YAHOO.env.ua.ie === 7) {
YAHOO.util.Dom.addClass(document.body, "ie7");
}
在渲染调用之后。然后代替我添加的样式,您可以使用IE7可能>=7样式

这是雅虎网站不得不说的:

以下是 缩放:1设置布局 属性设置为true并防止 菜单栏的第一层子菜单 防止在鼠标移动时隐藏 从菜单栏中的项目到 IE7中的子菜单。 有关hasLayout属性的详细信息:


仍然有一些不稳定的菜单,所以在IE8上玩了一点,发现在标签上添加autosubmenudisplay=true会产生真正的不同。设置为false时,需要单击菜单。但是,一旦单击其他子菜单,将在鼠标上方下拉。这在IE上似乎不太管用。让自动下拉菜单始终打开似乎是个诀窍。希望是最终的结果。结果表明,这种行为是由IE怪癖模式造成的。我所做的只是修改IE的古怪行为,而不是解决问题。我在开发过程中遗漏了一个简单的标准doctype,这迫使浏览器进入标准模式。