|
Как сделать чтобы не закрывать актиыный див при открытии другого дива
// Когда страница полностью загружена
$(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); }); }); |
dimas15, предположим нужно закоментить эту строку
// Сбрасываем все секции //$('#accordion > h3').removeClass('active'); но в таком случае все секции будут оставаться открытыми... |
а как сделать чтобы при нажатии открывалась секция , а при втором нажатии закрывалась?
|
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,
а как сделать чтобы при нажатии открывалась секция , а при втором нажатии закрывалась? |
dimas15, пост 4 не?
|
нужно чтобы при клике открывалась секция а ,предыдущая не закрывалась. т е чтобы можно было открыть все секции и при желании закрыть любую при клике.
|
можно чтобы все секции были скрыты изначально.
|
Цитата:
// Скрываем все секции кроме первой $('#accordion > div').hide(); |
да, я это комментил.
|
Часовой пояс GMT +3, время: 15:58. |
|