在JQuery中失去焦点时隐藏ul

时间:2011-01-10 09:42:22

标签: jquery events focusout

当我失去焦点时,我试图隐藏子菜单项(ul)..我的结构看起来像这样

            <div id="ActionDiv" style="border-color: #0099d4; width: 120px; height: 100%">
                <ul>
                    <li><a href="#"><span id="ActionHeader">Action &nbsp; <em>
                        <img src="images/zonebar-downarrow.png" alt="dropdown" />
                    </em></span></a>
                        <ul>
                            <li><a href="javascript:TriggerAction(1)">Send Email</a></li>
                            <li><a href="javascript:TriggerAction(1)">Invite to chat</a></li>
                            <li><a href="javascript:TriggerAction(1)">Consider For Opp</a></li>
                        </ul>
                    </li>
                </ul>
            </div>

在JQuery中,我使用 focusout 事件来处理丢失的焦点。

$("#ActionDiv>ul>li>ul").focusout(function() {
            $("#ActionDiv>ul>li>ul").hide();
});

但上面的代码不起作用。任何人都可以推荐一种方法来处理ul。中的丢失焦点事件。

3 个答案:

答案 0 :(得分:5)

在jQuery中尝试.hover()事件

$("#ActionDiv>ul>li>ul").hover(function() {
       $("#ActionDiv>ul>li>ul").show();
   },
   function(){
       $("#ActionDiv>ul>li>ul").hide();
});

答案 1 :(得分:4)

input(和textarea以外的元素没有原生(据我所知,但如果我错了就留下评论!){{ 1}}或focus个事件(它们旨在响应用户输入,而不是鼠标位置事件;尽管中的blur个元素各种{{ 1}}和a元素可以聚焦,并且该事件可能会传播,但我怀疑ul事件不会传播。

您可以使用hover()

li

答案 2 :(得分:3)

您似乎在寻找 mouseout mouseover 事件,而非焦点事件。