deha21
29.06.2014, 09:55:32
Zrobiłem sobie input selecty w formie listy <ul> która się wysuwa po kliknięciu na nią. Wszystko ładnie tylko chciałbym zrobić tak, że gdy lista jest rozwinięta i kliknie się gdzieś z boku strony to automatycznie się chowa. Jak to zrobić? Próbowałem z $("body").click ale "body" interpretuje też wtedy gdy kliknę na <ul>.
Musisz sprawdzić, czy obiekt, na który kliknięto nie jest
ul i nie zawiera się w
ul. Luknij:
http://api.jquery.com/click/,
http://api.jquery.com/has/.
by_ikar
29.06.2014, 13:33:58
Można to zrobić na wiele sposobów. Tak jak napisał @404, lub trochę podobnie:
http://jsfiddle.net/MDphS/ lub dodawać do danego elemenu jakąś klasę, np open i po kliknięciu w body ukrywać wszystkie elementy z klasą "open" jednocześnie tą klasę usuwać z tych elementów. Można też użyć do tego celu focus. No możliwości jest wiele.