2010-12-03 3 views
2

j'ai une structure html commeJQuery fadeOut opération

<ul> 
<li> <span class="vcard"> 
      <a class="underline user-link" href="https://stackoverflow.com/users/aruna">Aruna </a> 
     </span> 
     <div style="display: none;" class="image_hover"> 
      Student 
      <p> 
      <a onclick="" href="#">Show additional details</a> 
      <a href="#">view</a> 
      <p>Employee ID : </p> 
      <p>Project Name: </p> 
      <p>Project Role : r</p> 
      <p>Supervisor Name : </p> 
      </p> 
    </div> 
</li> 
<li> 
     <span class="vcard"> 
     <a class="underline user-link" href="https://stackoverflow.com/users/jasmine">jasmine </a> 
     </span> 
     <div style="display: none;" class="image_hover"> 
      Professor 
      <p> 
      <a onclick="" href="#">Show additional details</a> 
      <a href="#">view</a> 
      <p>Employee ID : </p> 
      <p>Project Name: </p> 
      <p>Project Role : r</p> 
      <p>Supervisor Name : </p> 
      </p> 
    </div> 
</li> 

</ul> 

J'ai essayé un code jQuery lorsque vous passez la souris sur le lien dans la durée (vcard) la div à côté de celle de fadeIn

Et quand il plane sur d'autres éléments du corps que le lien ou le div qui s'estompe, le div doit disparaître.

Comment faire?

celui que j'ai essayé de disparaître dans l

 jQuery(document).ready(function(){ 
     var _selectedLinkEl = null; 
     var _detailEl = null; 
     var body = jQuery("body"); 
     var elem=null; 

     jQuery(".user-link").mouseover(function(event) { 
       _selectedLinkEl = this; 
       _detailEl=jQuery(event.target).parent().next(); 
       _detailEl.fadeIn("slow"); 
       elem=jQuery(this).parent().next(); 
       _href=jQuery(this).attr('href').split("/")[2]; 

       jQuery.post('/users/user_detail/?name='+_href, 
       function(data){ 

          elem.html(data).fadeIn("slow"); 
       });//post 

      body.mouseover(_bodyMouseOverFunction); 
    }); // user-link 

     var _bodyMouseOverFunction = function(event) { 

      // to add some conditions here 

      _detailEl.fadeOut("slow"); 
      body.unbind("mouseover", _bodyMouseOverFunction); 



      };// mouseover 

     });// doc ready 

Je dois écrire quelques conditions à l'intérieur du _bodyMouseOverFunction mais ne sais pas comment spécifier .. S'il vous plaît donner des suggestions

+0

lecture mal code indenté est difficile et frustrant, ce qui rend moins probable que vous obtiendrez l'aide de personne. –

+0

@Marcelo Cantos - En retrait ... – useranon

+0

duplicata possible de [fadeout in jQuery] (http://stackoverflow.com/questions/4333713/fadeout-in-jquery) –

Répondre

1

Vous pouvez écrire .mouseleave() événement li au lieu de _bodyMouseOverFunction, par exemple

jQuery("li").mouseleave(function(e1){ 
    jQuery("div",jQuery(this)).fadeOut("slow");   
}); // user-link 

chaque fois que l'utilisateur se déplace sur l'une des div lien de contenu, div contenu cachera automatiquement.

working demo

+0

la chose que je suis en train de disparaître tout le temps même j'essaie de planer sur le div .... – useranon

+0

j'ai écrit une condition pour ne pas disparaître lorsque survoler sur le lien .if (event.target = _selectedEl) {// fadeout } – useranon

+0

Mais dono comment ajouter la condition pour rester le div quand planer sur la div ou sur tout élément enfant de la div .... – useranon