Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрыть или показать элементы (https://javascript.ru/forum/dom-window/66596-skryt-ili-pokazat-ehlementy.html)

johnon 26.12.2016 12:48

Скрыть или показать элементы
 
Всем добрый день. Имеется код типа:
<!--первый элемент-->
<div>
<a href="#">link-1</a>
<p>text</p>
</div>
<!--второй элемент-->
<div>
<a href="#">link-2</a>
<p>text</p>
</div>
<!--третий элемент-->
<div>
<a href="#">link-3</a>
<p>text</p>
</div>


Можно ли реализовать так, чтобы при клике по ссылке отображался параграф этого div`а , а остальные div`ы исчезали?

Спасибо за внимание.

рони 26.12.2016 13:03

johnon,
форум поиск открывашка в ассортименте 300 вариантов того что вы хотите.

johnon 26.12.2016 13:12

Тысячекратно извиняюсь , но не нашел то, чего мне нужно. Только стандартые show/hide.

рони 26.12.2016 13:57

Цитата:

Сообщение от johnon
Только стандартые show/hide.

а вам что нужно?

рони 26.12.2016 14:05

johnon,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   div p {
     display:  none;
   }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
var div = $('div');
div.on('click', 'a', function(event) {
  event.preventDefault();
var parent = $(this).parent();
$('p',parent).show();
div.not(parent).remove()
})

});
  </script>
</head>

<body>
<!--первый элемент-->
<div>
<a href="#">link-1</a>
<p>text</p>
</div>
<!--второй элемент-->
<div>
<a href="#">link-2</a>
<p>text</p>
</div>
<!--третий элемент-->
<div>
<a href="#">link-3</a>
<p>text</p>
</div>


</body>
</html>

Dilettante_Pro 26.12.2016 14:47

рони, может, не так сурово:-?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   div p {
     display:  none;
   }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
var div = $('div');
div.on('click', 'a', function(event) {
  event.preventDefault();
var parent = $(this).parent();
$('p',parent).show();
div.not(parent).find('p').hide()
})

});
  </script>
</head>

<body>
<!--первый элемент-->
<div>
<a href="#">link-1</a>
<p>text</p>
</div>
<!--второй элемент-->
<div>
<a href="#">link-2</a>
<p>text</p>
</div>
<!--третий элемент-->
<div>
<a href="#">link-3</a>
<p>text</p>
</div>


</body>
</html>

Правда, в результате получается
Цитата:

Сообщение от johnon
Только стандартые show/hide.

:-E

DivMan 26.12.2016 22:38

Пытаюсь переделать на чистый JS, почему при повторном клике, не закрывается?

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
   <style>
    div p {
     display:  none;
   }


   </style>

  </head>

  <body>
    
       <div>
<a href="#">link-1</a>
<p>text</p>
</div>
<!--второй элемент-->
<div>
<a href="#">link-2</a>
<p>text</p>
</div>
<!--третий элемент-->
<div>
<a href="#">link-3</a>
<p>text</p>
</div>
    
    <script>

      
    var div2 = document.querySelectorAll('div');
    
    for(var i = 0; i < div2.length; i++){
       
        div2[i].addEventListener('click', function(event) {
          event.preventDefault();
          
          if(event.target.nextElementSibling.style.display = 'none'){
             event.target.nextElementSibling.style.display = 'block'
          }
          
          else if(event.target.nextElementSibling.style.display = 'block'){
             div2[i].lastElementChild.style.display = 'none'
          }
        
         
        })
        
        //div2[i].lastElementChild.style.display = 'none'
    }
    
    
  </script>


  </body>

</html>

рони 26.12.2016 23:00

DivMan,
:blink: странный if :)

Dilettante_Pro 27.12.2016 10:21

DivMan,
Цитата:

Сообщение от DivMan
почему при повторном клике, не закрывается?

а с чего бы закрываться?
В примерах jquery закрывается p не в кликнутом диве, а во всех остальных.
div.not(parent).find('p').hide()

johnon 27.12.2016 10:39

Мне нужно , чтобы остальные из кликнутой ссылки появлялся параграф ,а остальные дивы исчезали. Ну и ссылку на исходный вариант по возможности.


Часовой пояс GMT +3, время: 18:38.