2010-07-05 15 views
1

Comment puis-je modifier le script this de sorte que lorsque je quitte le sous-menu, il reste ouvert pendant x secondes?Ajout de l'heure mouseOut

Actuellement, il slideup (cache) dès que je souris. J'ai besoin de hoverintent comme fonctionnalité où il se cache après x secondes.

HTML:

<div id="navigation"> 
     <ol> 
      <li><a href="#" class="parent">Menu 1</a> 
       <div class="submenu clear"><div class="listings clear"> content</div></div> 
      </li>   
     </ol> 
</div> 

Merci pour votre aide!

+3

vous pourriez avoir ajouté du code HTML à l'exemple ... – galambalazs

+0

désolé, html ajouté – 3zzy

+0

Mis à jour ma réponse. Cela devrait vous aider. –

Répondre

2

Quelque chose comme:

jQuery(element_here).delay(5000).slideup('fast', function() { 
    bm_item_link_obj.removeClass("bm-item-link-hover"); 
}); 

travaillerait

Si votre basant sur votre code html dans votre question/jsFiddle, vous changeriez votre JS dans l'instruction select pour ressembler à ceci:

case "slideUp": 
    bm_item_content_obj.delay(5000).slideUp('fast', function() { 
     bm_item_link_obj.removeClass("bm-item-link-hover"); 
    }); 

En outre, il serait préférable de conclure:

$("#navigation ol").bigmenu(); 

dans:

$(document).ready(function() { 

    // NAVIGATION 
    $("#navigation ol").bigmenu(); 

}); 

que

$(window).load(function() { 

    // NAVIGATION 
    $("#navigation ol").bigmenu(); 

}); 

Pour obtenir d'autres liens à glisser vers le haut quand vous allez à un autre lien de là, vous avez besoin directement ceci:

$(".submenu").not(bm_item_content_obj).stop(true, true).slideUp("fast"); 

ci-dessous ce qui est déjà:

case "slideDown": 

Il ressemblera:

case "slideDown": 
     bm_item_content_obj.height("auto"); 
     bm_item_content_obj.slideDown(100); 

     $(".submenu").not(bm_item_content_obj).stop(true, true).slideUp("fast"); 
break; 
+0

Bonne réponse - cochez-la. – LiverpoolsNumber9

+0

Presque parfait, juste une chose: quand je passe d'un menu à l'autre, les deux sous-menus restent ouverts; le précédent devrait être fermé. – 3zzy

+0

Il doit y avoir une erreur dans votre code alors. Si vous avez fourni un exemple de travail sur jsFiddle au lieu du code qui pourrait aider. –

0

Je sens que je fais le travail de quelqu'un elses ici, mais de toute façon, le code qui rend la chose aller semble loin comme il est ceci:

bm_item_content_obj.slideUp('fast', function() { 
    bm_item_link_obj.removeClass("bm-item-link-hover"); 
}); 

Il suffit donc de l'envelopper dans une minuterie si vous le voulez arriver après x secondes:

setTimer(function() { 

    bm_item_content_obj.slideUp('fast', function() { 
     bm_item_link_obj.removeClass("bm-item-link-hover"); 
    }); 

}, 5000); // 5 seconds 
+0

Le menu reste ouvert jusqu'à ce que vous cliquiez dessus. Hm ... – 3zzy