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

JavaScript JavaScript jQuery skrytí prvku po kliknutí kamkoli mimo prvek

Avatar
user
Redaktor
Avatar
user:

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
Tým ITnetwork
Avatar
Drahomír Hanák:

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
Redaktor
Avatar
user:

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

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

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.