2010-11-05 8 views
1

Puis-je définir la condition if-else avec la fonction hover? Je veux charger une page à côté du lien de texte quand je le survole et je veux être capable de survoler/survoler le contenu chargé. Mais ce contenu chargé sera supprimé dans deux situations:condition d'if-else avec la fonction de vol stationnaire?

  1. when the mouse leave the loaded content
  2. when the mouse leave the box that holds the text link

mais j'ai le problème avec le numéro de la situation 2 - si j'applique la fonction de vol stationnaire sur le numéro 2, le numéro 1 ne va tout simplement pas arriver. Le contenu chargé est supprimé immédiatement lorsque ma souris quitte la zone de lien de texte. Donc, je pense mettre la condition else-if à la fonction hover si possible (ou d'autres meilleures idées si vous en avez?) Je ne veux supprimer le contenu chargé que si le numéro de situation ne se produit pas. Si j'ai survolé le contenu chargé, n'appliquez pas la situation numéro 2 jusqu'à ce que la souris quitte la zone de contenu chargée.

est inférieure à la jQuery (pour le numéro de la situation 1):

$(document).ready(function() { 
    $(".button").hover(function(e){ 

     $('.wrapper-item-content').remove(); 

      var parent = $(this).parent(); 
      $(this).parent().addClass('current'); 


     var parent_top = parent.offset().top-180; 
     var parent_left = parent.offset().left+80; 

     $("body").append('<div class="wrapper-item-content"></div>'); 

     $(".wrapper-item-content").css({ 
      top: parent_top, 
      left: parent_left, 
      position: 'absolute', 
      zIndex: '100', 
      width: '350px', 
      height: '100%', 
      overflow: 'visible', 
      border: '1px solid #000' 
     }); 

     var path_url = $(this).attr('href'); 
     var path_file = $(this).attr('rel'); 
     var item_wrapper = $('.wrapper-item-content'); 

     var array_url = path_url.split('/'); 
     var pg_url = $(array_url).last()[0]; 

     item_wrapper.load(path_file+'?url='+pg_url, function(){ 

      item_wrapper.hover(function() { 
       item_wrapper.addClass('mouseenter'); 
      },function(){ 
       item_wrapper.removeClass('mouseenter'); 
       parent.removeClass('current'); 
       item_wrapper.remove(); 
      });  

      parent.hover(function() { 
       //something 
      },function(){ 

       if(item_wrapper.hasClass('mouseenter')) 
       { 
        //alert('has mouseenter'); 
       } 
       else 
       { 
        //alert('has no mouseenter'); 
        //parent.removeClass('current'); 
        //item_wrapper.remove(); 
       } 
      }); 

     }); 

    }, 
    function(){ 

    });  
}); 

Le html:

<div class="box"><a href="#" class="button" rel="content.php">Hover me</a></div> 
+0

fait ce travail ?? – hunter

+0

Salut merci pour la réponse. oui c'est le cas - après avoir changé mon css. afin que je ne doive pas compter sur javascript :-) jetez un oeil ici dans ma mise en œuvre http://rokhsanafiaz.co.uk/events merci! – laukok

Répondre

6

l'événement hover() peut prendre une autre fonction qui est appelée lorsque les feuilles de souris.

$(".button").hover(
    function(e){ }, // over 
    function(e){ } // out 
); 

http://api.jquery.com/hover/

vol stationnaire (handlerIn (eventObject), handlerOut (eventObject))
Questions connexes