2011-01-10 2 views
5

Я пытаюсь скрыть элементы меню суб (ул), когда он потерял фокус .. моя структура выглядит примерно такСкрыть уль когда потерял фокус в JQuery

  <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.

+1

использование размытия событие вместо focusout –

ответ

5

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

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

Он работает :) Еще раз спасибо Рахул ... – Roylee

3

вы, кажется, ищет и отведение указателя мыши Mouseover события, вместо focusout события.

4

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

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

$('#elementID').hover(
function(){ 
    // mouse-over 
}, 
function(){ 
    // mouse-out 
}); 
Смежные вопросы