Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.08.2012, 17:40
Аспирант
Отправить личное сообщение для dimas15 Посмотреть профиль Найти все сообщения от dimas15
 
Регистрация: 21.08.2012
Сообщений: 86

Как сделать чтобы не закрывать актиыный див при открытии другого дива
// Когда страница полностью загружена
$(window).ready(function()
{
// запоминаем высоту и отступы каждого блока
$('#accordion > div').each(function()
{
$(this).data('height', $(this).height());
$(this).data('padding-top', $(this).css('padding-top'));
$(this).data('padding-bottom', $(this).css('padding-bottom'));
});

// Скрываем все секции кроме первой
$('#accordion > div:not(:first)').hide();
// Делаем первую секцию активной
$('#accordion h3:first, #accordion div:first').addClass('active');
// Если пользователь кликнул на секцию
$('#accordion > h3').click(function()
{
// Сбрасываем все секции
$('#accordion > h3').removeClass('active');
$('#accordion > div:visible').animate({height: 0, 'padding-top': 0, 'padding-bottom': 0}, 500, function() { $(this).hide() } );

// Делаем активной на которую кликнули
$(this).addClass('active');
box = $(this).next().addClass('active');
$(box).animate(
{
height: $(box).data('height'),
'padding-top': $(box).data('padding-top'),
'padding-bottom': $(box).data('padding-bottom')
}, 500);
});
});
Ответить с цитированием
  #2 (permalink)  
Старый 21.08.2012, 18:55
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

dimas15, предположим нужно закоментить эту строку
// Сбрасываем все секции
//$('#accordion > h3').removeClass('active');

но в таком случае все секции будут оставаться открытыми...
Ответить с цитированием
  #3 (permalink)  
Старый 21.08.2012, 19:12
Аспирант
Отправить личное сообщение для dimas15 Посмотреть профиль Найти все сообщения от dimas15
 
Регистрация: 21.08.2012
Сообщений: 86

а как сделать чтобы при нажатии открывалась секция , а при втором нажатии закрывалась?
Ответить с цитированием
  #4 (permalink)  
Старый 21.08.2012, 19:37
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

dimas15, предположительно так
// Когда страница полностью загружена
$(window).ready(function()
{
// запоминаем высоту и отступы каждого блока
$('#accordion > div').each(function()
{
$(this).data('height', $(this).height());
$(this).data('padding-top', $(this).css('padding-top'));
$(this).data('padding-bottom', $(this).css('padding-bottom'));
});

// Скрываем все секции кроме первой
$('#accordion > div:not(:first)').hide();
// Делаем первую секцию активной
$('#accordion h3:first, #accordion div:first').addClass('active');
// Если пользователь кликнул на секцию
$('#accordion > h3').click(function()
{
// Сбрасываем все секции
if ($(this).hasClass('active')) {
$(this).removeClass('active');
$('#accordion > div:visible').animate({height: 0, 'padding-top': 0, 'padding-bottom': 0}, 500, function() { $(this).hide() } );
}
else {
// Делаем активной на которую кликнули
$(this).addClass('active');
box = $(this).next().addClass('active');
$(box).animate(
{
height: $(box).data('height'),
'padding-top': $(box).data('padding-top'),
'padding-bottom': $(box).data('padding-bottom')
}, 500);
}
});
});

Последний раз редактировалось lord2kim, 21.08.2012 в 19:46.
Ответить с цитированием
  #5 (permalink)  
Старый 21.08.2012, 19:40
Аспирант
Отправить личное сообщение для dimas15 Посмотреть профиль Найти все сообщения от dimas15
 
Регистрация: 21.08.2012
Сообщений: 86

lord2kim,
а как сделать чтобы при нажатии открывалась секция , а при втором нажатии закрывалась?
Ответить с цитированием
  #6 (permalink)  
Старый 21.08.2012, 19:42
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

dimas15, пост 4 не?
Ответить с цитированием
  #7 (permalink)  
Старый 21.08.2012, 19:44
Аспирант
Отправить личное сообщение для dimas15 Посмотреть профиль Найти все сообщения от dimas15
 
Регистрация: 21.08.2012
Сообщений: 86

нужно чтобы при клике открывалась секция а ,предыдущая не закрывалась. т е чтобы можно было открыть все секции и при желании закрыть любую при клике.
Ответить с цитированием
  #8 (permalink)  
Старый 21.08.2012, 19:46
Аспирант
Отправить личное сообщение для dimas15 Посмотреть профиль Найти все сообщения от dimas15
 
Регистрация: 21.08.2012
Сообщений: 86

можно чтобы все секции были скрыты изначально.
Ответить с цитированием
  #9 (permalink)  
Старый 21.08.2012, 19:48
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от dimas15 Посмотреть сообщение
можно чтобы все секции были скрыты изначально.
// Скрываем все секции кроме первой
$('#accordion > div').hide();
Ответить с цитированием
  #10 (permalink)  
Старый 21.08.2012, 19:50
Аспирант
Отправить личное сообщение для dimas15 Посмотреть профиль Найти все сообщения от dimas15
 
Регистрация: 21.08.2012
Сообщений: 86

да, я это комментил.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать, что бы див оставался на месте после перехода на следующую страницу? OklickSpb Общие вопросы Javascript 4 15.03.2012 22:02
Как сделать, чтобы у toggle была ненулевая высота? student-k Общие вопросы Javascript 7 15.08.2011 23:46
Как сделать чтобы у textarea увеличивался rows с каждой новой строчкой rusbody Общие вопросы Javascript 1 19.03.2011 16:43
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
как при открытии окна закрыть предыдущее Евдокимова Events/DOM/Window 3 16.09.2008 17:12