Chciałbym wiedzieć, czy jest to właściwy sposób ukrycia widocznych elementów po kliknięciu w dowolnym miejscu strony.
$(document).click(function (event) {
$('#myDIV:visible').hide();
});
Element (div, span itp.) Nie powinien znikać, gdy zdarzenie kliknięcia nastąpi w granicach elementu.
jquery
events
event-bubbling
Franek
źródło
źródło
.myDiv
elementu. Na przykład, jeśli masz w środku menu wyboru.myDiv
. Po kliknięciu zaznaczenia pomyśli, że klikasz poza polem.Spróbuj tego
Używam nazwy klasy zamiast identyfikatora , ponieważ w asp.net musisz się martwić o dodatkowe rzeczy .net dołączane do identyfikatora
EDYCJA - Ponieważ dodałeś kolejny element, będzie działać tak:
źródło
Od jQuery 1.7 istnieje nowy sposób obsługi zdarzeń. Pomyślałem, że odpowiem tutaj tylko po to, aby zademonstrować, jak mogę to zrobić w „nowy” sposób. Jeśli nie, polecam przeczytanie dokumentacji jQuery dla metody „on” .
Tutaj nadużywamy selektorów jQuery i bulgotanie wydarzeń. Zauważ, że upewniam się, że później wyczyściłem procedurę obsługi zdarzeń. Możesz zautomatyzować to zachowanie za pomocą
$('.container').one
( zobacz: docs ), ale ponieważ musimy zrobić warunki warunkowe w module obsługi, które nie mają tutaj zastosowania.źródło
Poniższy przykład kodu wydaje się działać najlepiej dla mnie. Chociaż możesz użyć „return false”, które zatrzyma całą obsługę tego zdarzenia dla elementu div lub któregokolwiek z jego elementów podrzędnych. Jeśli chcesz mieć kontrolki na pop-up div (na przykład wyskakujący formularz logowania), musisz użyć event.stopPropogation ().
źródło
Dzięki, Thomas. Jestem nowy w JS i szalenie szukałem rozwiązania mojego problemu. Twoja pomogła.
Użyłem jquery, aby utworzyć okno logowania, które przesuwa się w dół. Aby uzyskać najlepsze wrażenia użytkownika, postanowiłem, że pudełko zniknie, gdy użytkownik kliknie gdzieś poza pudełkiem. Jestem trochę zażenowany, że poświęcam około czterech godzin na naprawienie tego. Ale hej, jestem nowy w JS.
Może mój kod może komuś pomóc:
źródło
Możesz też:
Jeśli celem nie jest element DIV, ukryj go, sprawdzając, czy jego długość jest równa zero.
źródło
Zrobiłem poniżej. Myśl o dzieleniu się, aby ktoś inny również mógł skorzystać.
Daj mi znać, jeśli mogę komuś w tej sprawie pomóc.
źródło
div#newButtonDiv
nie zostanie kliknięty. Radziłbym usunąć drugi.click()
z linii 4 (jeśli to zrobisz, pamiętaj, aby usunąć nawiasy zamykające, nawiasy i średnik - wiersz 9).Spróbuj tego:
źródło
Inny sposób na ukrycie elementu div kontenera, gdy nastąpi kliknięcie w elemencie niebędącym potomkiem;
źródło
Tutaj #suggest_input in to nazwa pola tekstowego, a .suggest_container to nazwa klasy ul, a .suggest_div jest głównym elementem div dla mojej autosugestii.
ten kod służy do ukrywania elementów div przez kliknięcie dowolnego miejsca na ekranie. Zanim cokolwiek zrobisz, zapoznaj się z kodem i skopiuj go ...
źródło
Spróbuj tego, działa idealnie dla mnie.
źródło
ale musisz też o tym pamiętać. http://css-tricks.com/dangers-stopping-event-propagation/
źródło
Oto działające rozwiązanie CSS / small JS oparte na odpowiedzi Sandeep Pal:
Wypróbuj, klikając pole wyboru, a następnie poza menu:
https://jsfiddle.net/qo90txr8/
źródło
To nie działa - ukrywa .myDIV po kliknięciu w nim.
źródło
Tylko 2 małe ulepszenia powyższych sugestii:
zatrzymać propagację w zdarzeniu, które to wywołało, zakładając, że jest to kliknięcie
źródło
źródło
źródło
źródło
Proste rozwiązanie: ukryj element zdarzenia kliknięcia w dowolnym miejscu poza określonym elementem.
źródło