Autor Zpráva
Sylar
Profil
Ahoj,
mám takovýto kód
<script type="text/javascript">
  $("ul#nav li").hover(function() {
    $(this).children("ul").delay(500).slideDown(250);
  }, function() {
    $(this).children("ul").slideUp(250);
  });
</script>


Který po přijetí myši nad položku menu vyčká půl sekundy a poté se vyroluje nabídka. Co potřebuji udělat je to, aby když uživatel na položku najede a ihned zase odjede, aby mu nabídka nevyjela. Tzn. pokud na odkaze nechá kurzor myši půl sekundy, nabídka má vyjet, pokud přes odkaz pouze přejede a nezastaví se na něm, nabídka vyjet nemá.

Mohl by mi někdo poradit jak na to?
díky
Sir Tom
Profil
Sylar:
Udělej to asi nějak takto - jakmile uživatel najede nad menu, tak do proměnné 'najeto' ulož true. Jakmile odjede z menu - ulož do ní false.
No a po 500 milisekundách vykonej událost - přidej zde podmínku, která se ptá na hodnotu proměnné 'najeto'. Jestliže najeto==true, pak se vysune menu. V opačném případě se nestane nic.
_es
Profil
Podobná vec sa riešila tu.
Sylar
Profil
díky za rady, nakonec jsem to vyřešil takto

<script type="text/javascript">
  var counter = 0;
	$("ul#nav li").hover(function() {
     counter = setInterval(function() { $("ul#nav li:hover").children("ul").slideDown(250) }, 300);
  }, function() {
    clearInterval(counter);
    $("ul#nav li:hover").children("ul").slideUp(250);
  });
</script>


jinak jsem při bádání narazil i na pěkný plugin, kdyby se někomu hodil - http://cherne.net/brian/resources/jquery.hoverIntent.html .
1Pupik1989
Profil
pred funkce
slide dej funkci stop()

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0