Скрыть ul, когда потерял фокус в JQuery - PullRequest
5 голосов
/ 10 января 2011

Я пытаюсь скрыть элементы подменю (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 ]

5 голосов
/ 10 января 2011

Попробуйте .hover() событие в jQuery

$("#ActionDiv>ul>li>ul").hover(function() {
       $("#ActionDiv>ul>li>ul").show();
   },
   function(){
       $("#ActionDiv>ul>li>ul").hide();
});
4 голосов
/ 10 января 2011

Элементы, отличные от inputtextarea) , не имеют родного (насколько я знаю, хотя и оставляйте комментарии, если я не прав!) focus или blurсобытия (они предназначены для реагирования на пользовательский ввод, а не на события положения мыши; хотя a элементы в пределах различные ul и li элементы могут быть сфокусированным, и это событие может распространиться, хотя я подозреваю, что событие focusout этого не сделает).

Вы можете использовать hover(), хотя:

$('#elementID').hover(
function(){
   // mouse-over
},
function(){
  // mouse-out
});
3 голосов
/ 10 января 2011

вы, кажется, ищете события mouseout и mouseover вместо события focusout.

...