Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Ukrycie elementu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
sytluk
Witam, posiadam taki prosty kod który po kliknięciu w link otwiera i zamyka na zmianę diva:

  1. $('div.pole').hide();
  2.  
  3. $('a.przycisk').toggle(function(){
  4. $('div.pole').show();
  5. }, function(){
  6. $('div.pole').hide();
  7. });


Niestety div ukrywa się jedynie po kliknięciu w link, jak zrobić, aby div ukrywał się zawsze, kiedy klikniemy poza jego obszar?
d3ut3r
[JAVASCRIPT] pobierz, plaintext
  1. $(document).click(function() {
  2. $('div.pole').hide();
  3. });
[JAVASCRIPT] pobierz, plaintext
pczeglik
Hej,

Ja bym to zrobił w taki oto sposób:

  1. <!DOCTYPE HTML>
  2. <html lang="en-US">
  3. <meta charset="UTF-8">
  4. <title>Test</title>
  5. .content {padding:20px;height:200px;background:#CCC;}
  6. .pole {display:none;}
  7. </style>
  8. </head>
  9. <div class="content">
  10. <a href="#" class="przycisk">kliknij mnie</a>
  11. <div class="pole">
  12. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  13. </div>
  14. </div>
  15. <script type="text/javascript" src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
  16. <script type="text/javascript">
  17. (function($){
  18. "use strict";
  19.  
  20. var content = $('.content'),
  21. przycisk = $('.przycisk'),
  22. pole = $('.pole'),
  23. poleVisible = false;
  24.  
  25. przycisk.on('click', function() {
  26. pole.toggle();
  27. poleVisible = true;
  28. return false;
  29. });
  30.  
  31. pole.on('click', function(e) {
  32. e.stopPropagation();
  33. return false;
  34. });
  35.  
  36. content.on('click', function() {
  37. if (poleVisible) {
  38. pole.hide();
  39. poleVisible = false;
  40. }
  41. return false;
  42. });
  43. }(jQuery));
  44. </script>
  45. </body>
  46. </html>


Za '.content' możesz sobie wstawić np. 'body'

Możesz zobaczyć jak to działa i czy o to Ci chodzi tutaj: jsFiddle
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.