|
Как сделать чтобы не закрывать актиыный див при открытии другого дива
// Когда страница полностью загружена
$(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, время: 10:40. |
|