Скрыть или показать элементы
Всем добрый день. Имеется код типа:
<!--первый элемент--> <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`ы исчезали? Спасибо за внимание. |
johnon,
форум поиск открывашка в ассортименте 300 вариантов того что вы хотите. |
Тысячекратно извиняюсь , но не нашел то, чего мне нужно. Только стандартые show/hide.
|
Цитата:
|
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> |
рони, может, не так сурово:-?
<!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> Правда, в результате получается Цитата:
|
Пытаюсь переделать на чистый 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> |
DivMan,
:blink: странный if :) |
DivMan,
Цитата:
В примерах jquery закрывается p не в кликнутом диве, а во всех остальных. div.not(parent).find('p').hide() |
Мне нужно , чтобы остальные из кликнутой ссылки появлялся параграф ,а остальные дивы исчезали. Ну и ссылку на исходный вариант по возможности.
|
Цитата:
Не уверен, но кажется, пост 5 под это подходит. Ссылку на исходный вариант - что? Показать или спрятать? Возможно все. |
Извиняюсь за изложение. Вот перевод:
Допуcтим код такой: <div class="row"> <div class="first"> <a href="#">click me</a> <p>text</p> </div> <div class="second"> <a href="#">click me</a> <p>text</p> </div> <div class="third"> <a href="#">click me</a> <p>text</p> </div> <a class="go-back" href="#">link<a/> </div> Если например кликнуть на ссылку в диве с классом first , то появляется его текст и ссылка с классом go-back , а дивы с классами second и third исчезают. Затем, при нажатии ссылки с классом go-back все возвращается в исходное положение. |
johnon,
А как насчет ссылки в кликнутом диве? Оставлять или прятать? И еще: пробовали самостоятельно доработать пост 5? |
Ссылку в кликнутом диве спрятать.
Боюсь не смогу ничего дорабтать из 5-го поста...( |
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> div p { display: none; } .go-back { 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(); $('a').hide(); $('.go-back').show(); }); $('.go-back').on('click', function(event) { event.preventDefault(); $('a').show(); $('p').hide(); $('.go-back').hide(); }) }); </script> </head> <body> <!--первый элемент--> <div> <a href="#">link-1</a> <p>text1</p> </div> <!--второй элемент--> <div> <a href="#">link-2</a> <p>text2</p> </div> <!--третий элемент--> <div> <a href="#">link-3</a> <p>text3</p> </div> <a class="go-back" href="#">link<a/> </body> </html> |
Спасибо вам огромное!
|
johnon,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> div>p,div.active>a,div.row>div{ display:none; } div.row div.active,div.active>p,div.active>div{ display:block; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { var div = $(".row, .row > div"); div.on("click", ">a", function(event) { event.preventDefault(); var parent = $(this).parent(); div.not(parent.addClass("active")).removeClass("active") }) }); </script> </head> <body> <div class="row active"> <div class="first"> <a href="#">click me 1</a> <p>text 1</p> </div> <div class="second"> <a href="#">click me 2</a> <p>text 2</p> </div> <div class="third"> <a href="#">click me 3</a> <p>text 3</p> </div> <a class="go-back" href="#">link</a> </div> </body> </html> |
Часовой пояс GMT +3, время: 02:40. |