Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для Kraken73
105 / 93 / 50
Регистрация: 17.09.2015
Сообщений: 612

Скрыть div при активации другого

02.03.2016, 17:05. Показов 2125. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой список
HTML5
1
2
3
4
5
                        <ul class="tab_nav">
            <li style="left: 180px; top: 250px;" id="checkme1" onclick="сheck();"></li>
            <li style="left: 165px; top: 105px;" id="checkme2" onclick="check();"></li>
            <li style="left: 130px; top: 120px;" id="checkme3" onclick="сheck();"></li>
        </ul>
И есть такие вот div
HTML5
1
2
3
<div id="result1">Метка1</div>
<div id="result2">Метка2</div>
<div id="result3">Метка3</div>
По умолчанию все div скрыты, но при клике(наведении точней) на элемент списка должен отображаться.
Допустим кликаем на первый li отображается первый div. Кликаем на 2-ой li, 1-ый скрывается, а 2-ой отображается.

Пока придумал вот так

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script>
        $(document).ready(function(){
 
            $("#checkme1").click(function(){ 
                $('#result1').css('display','block');
                $('#result2').css('display','none');
                $('#result3').css('display','none');
            });         
 
 
            $("#checkme2").click(function(){ 
                $('#result2').css('display','block');
                $('#result1').css('display','none');
                $('#result3').css('display','none');
            });
 
 
            $("#checkme3").click(function(){ 
                $('#result3').css('display','block');
                $('#result2').css('display','none');
                $('#result1').css('display','none');
            });       
        })
    </script>
Но это неправильно, мне допустим 20 таких надо, не перебирать же так. Как правильно сделать? а то я в js не силен
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2016, 17:05
Ответы с готовыми решениями:

При клике на DIV меняется картинка другого DIV
Подскажите как это реализовать? Добавлено через 21 минуту Можно-ли решить этот вопрос при помощи лишь HTML и CSS? Или нужно...

Скрыть div при нажатии на кнопку
кто подскажет как скрыть div с кодом при нажатии на кнопку вместе с кнопкой так-как кнопка в div-е с кодом иммею в виду чтобы логика в...

Скрыть div при нажатии на него
Помогите решить проблему. Я в JS никакой. Если кто знает, напишите код, который позволяет скрыть div при нажатии кнопки мыши в любую...

5
 Аватар для Goga5
61 / 39 / 20
Регистрация: 06.12.2015
Сообщений: 155
02.03.2016, 18:46
Упростил.
HTML5
1
2
3
4
5
6
7
8
9
<ul class="tab_nav">
    <li style="left: 180px; top: 250px;" id="1" onclick="сheck();">Первый li</li>
    <li style="left: 165px; top: 105px;" id="2" onclick="check();">Второй li</li>
    <li style="left: 130px; top: 120px;" id="3" onclick="сheck();">Третий li</li>
</ul>
 
<div id="f1" class="sd">Метка1</div>
<div id="f2" class="sd">Метка2</div>
<div id="f3" class="sd">Метка3</div>
JavaScript
1
2
3
4
5
6
7
8
9
10
var lis = document.getElementsByTagName("li");
var dl = document.getElementsByClassName("sd");
var n, m, p;
for(n in lis){
lis[n].onclick = function(){
for(m in dl){
p = dl[m].id;
p = p.substr(1, 1);
if(this.id == p) dl[m].style.display = "block";
else dl[m].style.display = "none";}}}
"Спасибо" и "Лучший ответ" - лучшая валюта!
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
02.03.2016, 19:32
1) событие клика можно отслеживать не на каждом пункте, а один раз -- на всём списке <ul>
2) прописывать id каждому пункту тоже совершенно не обязательно -- и никак нельзя, по совету предыдущего поста, прописывать id, начинающиеся с цифры (или состоящие только из цифр)

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<style>
li {cursor: pointer}
.lbl {display: none}
</style>
 
<script>
onload = function ()
{
document.getElementById ('myList').onclick = function (e)
   {
   var e = e || window.event, o = e.target || e.srcElement;
   while (o.tagName != 'LI') o = o.parentNode;
   for (var lis = o.parentNode.getElementsByTagName ('LI'), j = 0, J = lis.length; j < J; j++)
      document.getElementById ('m' + j).style.display = (lis [j] != o) ? 'none' : 'block';
   }
}
</script>
</head>
<body>
<ul id="myList">
<li><b>aaa</b>000</li>
<li><i>bbb</i>111</li>
<li><u>ccc</u>222</li>
<li><b>ddd</b>333</li>
</ul>
                                 <hr>
<div class="lbl" id="m1">b1</div><hr>
<div class="lbl" id="m0">a0</div><hr>
<div class="lbl" id="m3">d3</div><hr>
<div class="lbl" id="m2">c2</div><hr>
1
 Аватар для Goga5
61 / 39 / 20
Регистрация: 06.12.2015
Сообщений: 155
03.03.2016, 06:17
Цитата Сообщение от kalabuni Посмотреть сообщение
по совету предыдущего поста, прописывать id, начинающиеся с цифры (или состоящие только из цифр)
Где-то я это уже слышал, тем не менее - работает.
0
 Аватар для Kraken73
105 / 93 / 50
Регистрация: 17.09.2015
Сообщений: 612
09.03.2016, 12:04  [ТС]
Суть в том, что при открывании 2-ого div(toggle_content), активный должен скрываться, а у меня просто открывается, а предыдущий не скрывается. Сделал через slideToggle, можно ли доработать, чтобы правильно работало? или придется добавлять всякие active классы и display?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div class="toggle_container">
 
  <div class="toggle_item">
    <h2>Кликни меня </h2>
    <div class="toggle_content">Тут контент</div>
  </div>  
 
  <div class="toggle_item">
    <h2>Кликни меня </h2>
    <div class="toggle_content">Тут контент</div>
  </div>
 
 
</div>
JavaScript
1
2
3
4
5
6
$(document).ready(function(){
    $(".toggle_content").hide(); 
    $("h2").click(function(){
        $(this).next(".toggle_content").slideToggle("normal");
    });
});
Добавлено через 7 минут
Если же дописать в js, то все будет работать, но не скроется текущий раскрытый элемент при клике на нем
JavaScript
1
2
3
4
5
6
7
$(document).ready(function(){
    $(".toggle_content").hide(); 
    $("h2").click(function(){
        $(".toggle_content").slideUp("normal");
        $(this).next(".toggle_content").slideToggle("normal");
    });
});
0
81 / 81 / 50
Регистрация: 26.11.2012
Сообщений: 303
09.03.2016, 12:30
JavaScript
1
2
3
4
5
6
7
8
9
10
11
$(document).ready(function(){
    $(".toggle_content").hide(); 
    $("h2").click(function(){
      $(".toggle_content").slideUp();
      
      if($(this).next().is(':visible'))
        $(this).next().slideUp();
      else
        $(this).next().slideDown();  
    });
});
https://jsfiddle.net/5hLz8db1/1/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2016, 12:30
Помогаю со студенческими работами здесь

Скрыть div при клике в другом месте
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#search&quot;).keyup(function(){ var search = $(&quot;#search&quot;).val(); $.ajax({ ...

Скрыть один div и вывести второй div
всем привет, уважаемые форумчане! ситуация такая: есть 2 div-а. &lt;div&gt;поиск&lt;/div&gt; &lt;div&gt;контент&lt;/div&gt; по умолчанию в диве...

Скрыть <DIV> при клике на динамическом баннере, находящемся в данном <DIV>
Добрый день. Есть &lt;li&gt; , в нем находится динамический баннер . Необходимо, чтобы при клике по баннеру происходил переход по ссылке,...

Скрыть div при выборе чекбокса
Привет всем у меня есть скрипт, который скрывает div при выборе чекбокса. только есть одна проблема. Дело в том, что он скрывает весь...

Скрыть div при клике вне элемента
Доброго времени суток. Для показа div'а и его скрытия при клике вне его границ использую вот такой код: $(function(){ $('#callback...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru