2014-02-27 28 views
0

这是一个非常复杂且难以解释的问题,因为菜单不合理大,菜单应该包含(几个月前,他们将视频卡在视频中)。其中一件事是一个选择框。我终于得到了批准,将菜单重新设计成更易于管理的形式,但是我很难让选择框起作用。基本上,一旦它被点击使用,尽管它实际上仍然在相关元素中,并且隐藏了选择框所在的子菜单,但是鼠标事件事件从其隆起的父元素中触发。 菜单仍在开发中,但我在这一块上碰到了我的头,所以任何帮助都是值得赞赏的。在导航菜单中选择菜单..当用户尝试使用其中一个子菜单中的选择菜单时发出.mouseleave激发问题

下面是该网站(选择框正在办公室>县办事处):

http://www.aces.edu/~sab0037/side-menu.dwt.php

这在很大程度上仍然是一个草稿,所以请不要打坏过于依赖我的编码实践,我会走出去,将我的脚本和css分开到不同的文件以及菜单列表。然而,建设性的批评是受欢迎的。

回答

0

发现问题的根源。我试图要积极主动支持点击,而不是悬停,并在此过程中,意外指定ALL李的孩子..

$('nav>ul>li').click(function() { if($(this).hasClass('active')) { $(this).removeClass('active'); } else { level1HoverEvents($(this)); } });

这就意味着,当我在点击的元素,它关闭一切。需要限制!

0

如何防止选择获得焦点时的mouseleave?

这样的事情也许

$('.menu').mouseleave(function() { 
    var selectFocused = $('select').is(":focus"); 

    if (!selectFocused) { 
     // hide Menu if select doesnt have the focus 
    } 
}); 

但是,这也将防止关闭菜单,当你离开的菜单,而选择的重点。

+0

这并没有为我工作,下面结果是FOO的警报和菜单仍然关闭 - '$( 'NAV> ul> li> ul>礼')鼠标离开(函数(){ 。 \t \t \t \t VAR selectFocused = $( '导航UL选择')是( “:焦点”); \t \t \t \t如果(selectFocused){警报( '富');} \t \t \t如果(! selectFocused){ \t \t \t $(this).removeClass('show2'); \t \t \t \t \t \t} \t \t \t \t \t \t \t});' – relevantsam

+0

刚才检查您的网站,它似乎对我现在的工作...... 如果你找到了一个解决方案,您可以后呢? – Ekusu

+0

现在又破了 – Ekusu