jeśli mam element div, który pokazałem dzięki zdarzeniu typu kliknięcie - co jest łatwiejsze, aby go zamknąć, gdy ktoś kliknie w dowolnym miejscu poza działem div lub uderza klawisz esc?Ukrywanie elementu div za pomocą klawisza esc i kliknięcie wyłączone? W Jquery
Odpowiedz
Proszę bardzo ...
$(document).on('click', function (e) {
if ($(e.target).closest(elem).length === 0) {
$(elem).hide();
}
});
$(document).on('keydown', function (e) {
if (e.keyCode === 27) { // ESC
$(elem).hide();
}
});
żywo demo:http://jsfiddle.net/S5ftb/
Dla tych z Was, którzy wolą wanilię:
<div id="div">Click me dude</div>
<script>
d = document.getElementById("div");
d.addEventListener("click", function(e){e.stopPropagation()},true);
addEventListener("click", function() {d.style.display="none"},false);
addEventListener("keypress", function(e){e.keyCode==27 &&(d.style.display="none")},false);
</script>
Element powinien być ukryty tylko wtedy, gdy pojawi się kliknięcie * poza * elementu ... –
Yikes, good catch; Sprawdzę. –
Dzięki za rozwiązanie nie-jquery! – Philipp
- 1. Przewijanie elementu div za pomocą jQuery
- 2. Ukrywanie przycisku za pomocą jquery
- 3. jQuery przekazanie fokusa i kliknięcie elementu
- 4. Automatyczne kliknięcie elementu przycisku przy ładowaniu strony za pomocą jQuery
- 5. Uzyskaj kliknięcie elementu za pomocą jQuery na wydarzenie?
- 6. Pokazywanie i ukrywanie elementów div w określonym przedziale czasu za pomocą jQuery
- 7. Jak usunąć atrybut id z elementu div za pomocą jQuery?
- 8. Jak przejść do góry elementu div za pomocą jquery?
- 9. Jak nadpisać zachowanie naciśnięcia klawisza ESC dla okna dialogowego jQuery
- 10. Jak usunąć zawartość elementu za pomocą JQuery?
- 11. Wiązanie JQuery Esc Keypress
- 12. Tworzenie elementu poza rodzicem za pomocą jQuery
- 13. Jak zmienić css elementu za pomocą jQuery
- 14. Jak zmienić pozycję elementu za pomocą jQuery
- 15. Ustawianie przezroczystości DIV i jego zawartości za pomocą jQuery
- 16. Jak zabić pętlę while za pomocą klawisza?
- 17. Zamknij okno JavaFx po naciśnięciu klawisza esc?
- 18. Wyczyść pole tekstowe wejściowe w Angular/AngularUI za pomocą klawisza ESC
- 19. Uzyskiwanie indeksu elementu listy za pomocą Jquery
- 20. pionowe wyrównanie div w div za pomocą jquery?
- 21. Losowa sekwencja elementów div za pomocą jQuery
- 22. Pokaż div #id na kliknięcie z jQuery
- 23. Wykryj kliknięcie poza div przy użyciu javascript
- 24. Ukrywanie przycisku w JQuery za pomocą .prop (ukryte: prawda)
- 25. Jak wyświetlić tylko pierwszy wiersz tekstu elementu div i rozwinąć kliknięcie?
- 26. Przełącz między elementami div wewnątrz innego elementu div za pomocą jQuery?
- 27. JQuery pokazywać i ukrywać div na kliknięcie myszą (ożywiony)
- 28. jQuery, aby wywołać kliknięcie elementu iframe?
- 29. Znajdowanie elementu za pomocą identyfikatora w odpowiedzi AJAX z jQuery
- 30. jQuery - wyłączenie funkcji na kliknięcie elementu nadrzędnego
Z> 1K rep należy wiedzieć lepiej niż zadać takie pytanie - co próbowaliście? –
Powiąż odbiornik zdarzeń z tymi zdarzeniami i ukryj element div. Zobacz [Jak wykryć kliknięcie poza elementem?] (Http://stackoverflow.com/questions/152975/how-to-detect-a-click-outside-an-element) i [Który kod klucza Escape z jQuery ] (http://stackoverflow.com/questions/1160008/which-keycode-for-escape-key-with-ququery). –
Nie jestem ekspertem od JavaScript, ale powinno to pomóc: http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml. Użyj onKeyPress dla esc. Aby uzyskać kliknięcie, użyj przezroczystego elementu div lub czegoś obejmującego całą stronę, z div na górze. Ten przezroczysty obiekt powinien mieć funkcję onClick, a kliknięcie będzie kliknięciem zamykającym. –