2013-07-30 3 views
0

Я использую этот код, чтобы показать/скрыть DIV, изменяя его высоту:Jquery CSS высота Переключить

$("#about").click(function(){ 
    if ($('#descrition').css('height') === '280px') { 
     $("#description").css("height","0px"); 
    } else { 
     $("#description").css("height","280px"); 
    } 
}); 

Он работает, чтобы расширить DIV, но не тогда, когда я снова нажмите, чтобы скрыть его. Есть идеи?

PS: изменение высоты важно, поскольку я использую css-переходы для анимации div, поэтому изменения отображения не являются опцией.

ответ

2

Это как исправить вашу проблему и ускорить код, убирая неоднократное JQuery разбирает ...

$("#about").click(function() { 
    var $description = $("#description"); 
    if ($description.height() === 280) { 
     $description.height(0); 
    } else { 
     $description.height(280); 
    } 
}); 

Как отметил putvande, там была опечатка при попытке получить высоту. Вышеупомянутое также сохраняет объект jQuery как локальную переменную, а не разбор DOM.

+0

+1 для максимально возможного избежания DOM – zigo

1

Это потому, что у вас есть опечатка.

В первой строке вы указываете ('#descrition').css('height') вместо ('#description').css('height').

Но вы также можете использовать:

$('#description').height(); 

Но что дает значение без «пикселей».

+0

Черт. Большое спасибо. – jrmy

+0

Вы получаете мой +1, но я добавил немного ниже. – Archer

Смежные вопросы