Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/70: Рейтинг темы: голосов - 70, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 74

Как сделать, чтобы два блока сменяли друг друга при клике?

19.02.2013, 20:08. Показов 13299. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите, пожалуйста решить проблему.
Нужно, чтобы при нажатии на кнопку, один блок всегда заменялся другим, и при нажатии на другую кнопку, возвращался первый блок.
Код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function() {
 
               $("#main").click(function() {
               $("div.news-detail").replaceWith(news);                  
            });   
            
   var image = $("div#kart").wrap().html();
   var anons = $(".news-detail span").wrap().html();
   var data = $("#data-detail").wrap().html(); 
   var detail = $(".news-detail").detach(); 
   var news = $(".new");   
   $("div.center-b div.brown").append(image);
   $(".center-b p").append(anons+"...");
   $(".center-b .data").append(data); 
 
               $("#news").click(function() {
                $(".new").replaceWith(detail);   
            });
               
});
html

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
<div class="new">
      <div class="left-b">
         <div class="brown"></div>
         <div class="data"></div>         
         <p></p>
         <div class="detail"></div>
      </div>
      <div class="center-b">
         <div class="brown"></div>
         <div class="data"></div>
         Новости
         <p></p>
         <div class="detail" id="news">Подробно</div>
      </div>
      <div class="right-b">
         <div class="brown"></div>
         <div class="data"></div>         
         <p></p>
         <div class="detail"></div>         
      </div>
   </div>
   <div class="news-detail">
<h1><span>Заголовок</span></h1>
<div id="kart"><img src="images/vi.jpg"></div>
<p>текст текст текст текст текст тексттекст текст тексттекст текст тексттекст текст тексттекст текст тексттекст текст текст</p>
<p id="data-detail">07.02.2013</p>
<div class="detail" id="main">Назад</div>
 
   </div>
Один раз это срабатывает, но, вернувшись к блоку .new, второй раз уже нельзя заменить его на .news-detail . А как сделать так, чтобы можно было постояно менять их туда и обратно?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2013, 20:08
Ответы с готовыми решениями:

Как сделать что-бы картинки в массиве сменяли друг друга при клике?
Нужно сделать так что-бы место картинки накладывалась другая картинка как это сделать? Уже замучился с этим. &lt;!DOCTYPE html&gt; ...

Сделать, чтобы несколько изображений сменяли друг друга рандомно
private Bitmap myCupcake; private String fileToDisplay = &quot;firstCupcake.png&quot;; private int x, y; Random...

Поставить два блока в одну строку, так чтобы они отстояли друг от друга на определенном растоянии
Ширина и высота не заданы, как поставить два блока в одну строку, так чтобы они отстояли друг от друга на определенном растоянии? просто...

28
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 74
25.02.2013, 10:07  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо, получилось.
А как насчет того, чтобы данные с загружаемой страницы отображались на исходной? То есть сразу, не при нажатии кнопки, а уже при загрузке страницы. Возможно ли это без php ?
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
25.02.2013, 16:29
Без php возможно, если не передавать данные ни в POST ни в GET:
JavaScript
1
2
3
$(document).ready(function(){
   $('#name').load('name.php');
});
0
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 74
26.02.2013, 15:24  [ТС]
Цитата Сообщение от Zazu Посмотреть сообщение
Без php возможно, если не передавать данные ни в POST ни в GET:
});[/JS]
Не пойму как сделать. Если возможно, покажите, пожалуйста, на примере.
В данном случае у меня содержимое блока #data с исходной страницы попадает в блок #data-detail на загружаемую страницу, а как сделать, чтобы содержимое блока #data-detail загружаемой страницы сразу показывалось в блоке #data на исходной?

JavaScript
1
2
3
4
5
6
function NewsDetail() {
var data = $("#data").wrap().html(); 
      $(".new").load('news.htm', data, function() {
          $("#data-detail").append(data);
      });       
  }
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
26.02.2013, 22:56
Вот код, который при открытии страницы загрузит в блок #data страницу с названием "name.php", вместо "name.php" прописывайте нужную вам страницу, то же и с #data. Функция "NewsDetail()" также будет работать, если все id, class и путь к странице правильно прописан.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
$(document).ready(function(){
   $('#data').load('name.php'); /* эта строка загружает name.php в блок data после того, как страница полностью загружена в браузер*/
});
</script>
<script>
function NewsDetail() {
var data = $("#data").wrap().html(); 
   $(".new").load('news.htm', data, function() {
       $("#data-detail").append(data);
   });       
}
</script>
0
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 74
26.02.2013, 23:20  [ТС]
Цитата Сообщение от Zazu Посмотреть сообщение
Вот код, который при открытии страницы загрузит в блок #data страницу с названием "name.php", вместо "name.php" прописывайте нужную вам страницу, то же и с #data. Функция "NewsDetail()" также будет работать, если все id, class и путь к странице правильно прописан.
Но мне не нужно, чтобы вся страница name.php загружалась в блок #data. Нужно, чтобы загружалась только определенная часть этой страницы (например содержимое находящегося на ней блока #data-detail)

Вот этот код не работает:
JavaScript
1
2
3
4
5
$(document).ready(function(){
   var data = $("#data-detail").wrap().html();
   $(".new").load('news.htm', data, function() {
       $("#data").append(data);
   });
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
26.02.2013, 23:27
так нельзя сделать, создайте отдельную страницу data-detail.html и загружайте её! или можно обойтись вообще без загрузки, сразу на странице в блоке #data пропишите то что вам нужно, а после загрузки страницы в блок #data старый текст автоматически заменится загружаемым!
0
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 74
26.02.2013, 23:39  [ТС]
Цитата Сообщение от Zazu Посмотреть сообщение
так нельзя сделать, создайте отдельную страницу data-detail.html и загружайте её! или можно обойтись вообще без загрузки, сразу на странице в блоке #data пропишите то что вам нужно, а после загрузки страницы в блок #data старый текст автоматически заменится загружаемым!
Понятно. А как сделать так, чтобы после загрузки страницы news.htm в блок .new вернуть изначальное содержимое блока .new после нажатия на кнопку <div id="main" onclick="News()" class="detail">Назад</div>, которая находится на странице news.htm ?
JavaScript
1
2
3
4
5
6
function NewsDetail() {
var data = $("#data").wrap().html(); 
      $(".new").load('news.htm', data, function() {
          $("#data-detail").append(data);
      });       
  }
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
27.02.2013, 01:18
вы лучше исходник кода дайте и скажите что должно происходить и о чём вообще речь идёт, а я вам готовый код напишу. Я так понимаю вам каждое действие придется детально описывать!

Добавлено через 1 минуту
Ну или придумайте пример, на котором я смог бы вам объяснить как это всё можно сделать!
0
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 74
27.02.2013, 12:41  [ТС]
Сейчас код такой:

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
        <div class="content">
 
 
    <div class="new">
 
        <div class="center-b">
            <div id="brown"></div>
            <div class="data"></div>
            Новости
            <p></p>
            <div class="detail" id="news">Подробно</div>
        </div>
 
    </div>
    
    <div class="news-detail">
<h1><span>Это будет текст анонса</span></h1>
<div id="kart"></div>
<p>текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст тексттекст текст текст текст текст текст текст текст текст текст текст текст тексттекст текст текст текст текст текст текст текст текст текст текст текст тексттекст текст текст текст текст текст текст текст текст текст текст текст тексттекст текст текст текст текст текст текст текст текст текст текст текст тексттекст текст текст текст текст текст текст текст текст текст текст текст текст</p>
<p id="data-detail">06.02.2013</p>
<div class="detail" id="main">Назад</div>
 
    </div>
 
        </div>

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$(document).ready(function() {
    document.getElementById('kart').innerHTML = '<img src="images/' + multiply () + '.jpg">';
 
 
    document.getElementById('brown').innerHTML = '<img src="images/' + multiply () + '-sm.jpg">';
 
 
                $("#main").click(function() {                   
                    $("div.news-detail").detach();      
                    $(".content").append(news); 
 
                }); 
                
 
   var anons = $(".news-detail span").wrap().html();
   
   
 function multiply () {  
   var data = $("#data-detail").wrap().html();  
   return data;
   }
   
   var datanew = multiply ()
   
   var detail = $(".news-detail").detach();  
   var news = $(".new");    
 
   $(".center-b p").append(anons+"...");
   $(".center-b .data").append(datanew);  
   
   
 
 
                $("#news").click(function news() {
                    $(".new").detach(); 
                    $(".content").append(detail);                       
                });
                   
});
Изначально на странице показывается блок <div class="new">, в котором блок <div class="data"> запоняется содержимым блока <p id="data-detail">, <p> заполняется содержимым <span> блока <div class="news-detail"> и название картинки тоже связано с блоком <p id="data-detail">. При нажатии на кнопку Подробно вместо блока <div class="new"> в контенте (<div class="content">) показывается блок <div class="news-detail">. При нажатии в нем на кнопку Назад возвращается обратно блок <div class="new"> и т.д. (чтобы постоянно они менялись при нажатии кнопок).
Нужно чтобы происходило всё тоже самое, но без использования в коде jquery родительского блока <div class="content"> и без изменения стилей блоков (видимость, прозрачность). Возможно как-то с применением replaceWith.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2013, 12:41
Помогаю со студенческими работами здесь

Как в PHP отделить элементы друг от друга, чтобы не ругались друг на друга?
&lt;?php $chitat = fopen('yoo.txt', 'r'); if (!$chitat) { echo 'Ошибка при открытии файла yoo.txt'; } while (false !== ($char =...

как настроить чтобы два компа друг друга видели
мне маршутизатор устоновили d-link dir300 , блин ковырялся в сетевом окружении ,пробовал настраивать локалку, короче не могу настроить так...

Сделать, чтобы при перетаскивании, предметы натыкались друг на друга
Всем доброго времени суток. С графикой никогда не работал, а сейчас понадобилась некоторая визуализация для калькулятора. Калькулятор...

Как сделать чтобы блоки не видели друг друга?
Написал скрипт, который вставляет блоки разных размеров, цветов и с различными выравниваниями и отступами. Убил 2 дня 400 строк кода на...

Как сделать чтобы 3 круга не находили друг на друга
if button=mbright then with Image1.Canvas do begin pen.Mode:=pmMask; pen.Color:= ColorBox3.Selected;


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru