slideup nach 5 sekunden

handyaner2

Grünschnabel
ich habe mit jquery eine div box die ich auf und zuklappen kann.

nun soll sich das div nach 5 sekunden schließen, sobald man sich mit der maus nicht im div befindet.
das klappt auch.
aber wenn ich mit der maus nie über dem div war, schließt es sich auch nie. das soll sich aber auch dann schließen.

Code:
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
 
<script>
  $(document).ready(function(){
   
    $("#morebutton").click(function () {
      $("#menu").slideToggle("slow");
  $("#menu").mouseout(function(){
  window.setTimeout(function(){$('#menu').slideUp("slow");}, 2000);
    })
    });

  window.setTimeout(function(){ if (!IsMouseOver('#menu')) $('#menu').slideUp("slow");}, 2000);
  });

  
  </script>
  <style>
  #menu {
   
    background: #CCC;
    width: 100px;
    }
  </style>
</head>
<body>
  <a id="morebutton" href="#"> &raquo;</a>
  <div id="menu">
    <p>dhdh</p>
  <p>dkkdkd</p>
  <p>djdd</p>
  <p>bcbcb</p></div>
</body>
</html>
 
Moin,

du könntest beim mouseover des Menus eine globale Variable erstellen(sagen wir mal menu_over)

Code:
$("#menu").mouseover(function(){window.menu_over=true;});

Diese Anweisung
Code:
window.setTimeout(function(){ if (!IsMouseOver('#menu')) $('#menu').slideUp("slow");}, 2000);
...ersetze dann hiermit
Code:
window.setTimeout(function(){ if (typeof menu_over=='undefined') $('#menu').slideUp("slow");}, 2000);
 
hallo

leider schließt es sich dann auch, wenn sich die maus über dem layer befindet. aber eigentloch sollte es offen bleiben
Code:
<script>
  $(document).ready(function(){
$("#menu").mouseover(function(){window.menu_over=true;});


    $("#morebutton").click(function () {
      $("#menu").slideToggle("slow");

  window.setTimeout(function(){ if (typeof menu_over=='undefined') $('#menu').slideUp("slow");}, 5000);
  });
window.setTimeout(function(){ if (typeof menu_over=='undefined') $('#menu').slideUp("slow");}, 5000);

  });

  
  </script>
 
Zurück