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
Tým ITnetwork
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
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.