Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
C# week
Avatar
user
Redaktor
Avatar
user:23.4.2012 19:45

Zdravím,
Mám "vysouvací" menu které po kliknutí vysunu, ale jak udělat aby se zase skrylo pokud kliknu kamkoli jinam mimo prvek kde je menu umístěno....?

 
Odpovědět
23.4.2012 19:45
Avatar
Drahomír Hanák
Redaktor
Avatar
Drahomír Hanák:23.4.2012 20:15

V jQuery není žádná přímá cesta, jak to zjistit. Co ale můžeš udělat je zjistit si na co uživatel klikl. Vytvořil jsem jednoduché demo, které to ukazuje http://jsfiddle.net/urxym/ Po kliknutí na odkaz se položka seznamu vysune (proto .parent() - klikáme na odkaz, ne na li)

$('ul#testnav li a').click(function(e) {
    e.preventDefault();
    $(this).parent().stop().animate({ marginLeft: 20 });
});

A pokud klikneme kamkoli na stránce, ověříme si, jestli náhodou není rodič toho, kam jsme klikli náš seznam ul#testnav. Pokud není, uživatel klik mimo menu a můžeme tedy odkazy skrýt.

$(document).click(function(e) {
    e = $.event.fix(e);
    if($(e.target).parents('ul#testnav').length == 0)
        $('ul#testnav li').stop().animate({ marginLeft: 0 });
});

Je to sice závislé na té HTML struktuře, ale snad si to budeš umět upravit :) Kdyby ti něco nešlo, tak klidně napiš, rád ti s tím pomůžu.

 
Nahoru Odpovědět
23.4.2012 20:15
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
user
Redaktor
Avatar
user:23.4.2012 22:34

super, děkuji ti už to fachčí :D

 
Nahoru Odpovědět
23.4.2012 22:34
Avatar
Nikola
Neregistrovaný
Avatar
Nikola:28.4.2012 23:48

Díky

 
Nahoru Odpovědět
28.4.2012 23:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.