Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akce až 50 % zdarma při nákupu e-learningu. Více informací:
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: jQuery skrytí prvku po kliknutí kamkoli mimo prvek

Aktivity
Avatar
user
Tvůrce
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: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
Avatar
user
Tvůrce
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.