0

このコードを使用して、高さを変更して div を表示/非表示にしています。

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

div を展開することはできますが、もう一度クリックして非表示にすると機能しません。何か案は?

PS: CSS トランジションを使用して div をアニメーション化するため、高さの変更は重要であるため、表示の変更はオプションではありません。

4

2 に答える 2

2

これにより、問題が修正され、コードが高速化され、繰り返される jQuery 解析が削除されます...

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

putvande が指摘したように、高さを取得しようとしたときにタイプミスがありました。上記では、DOM を繰り返し解析するのではなく、jQuery オブジェクトをローカル変数として保存しています。

于 2013-07-30T12:36:22.970 に答える
1

それは、タイプミスがあるからです。

('#descrition').css('height')最初の行では、の代わりにチェックします('#description').css('height')

ただし、次を使用することもできます。

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

しかし、それは「px」なしの値を与えます。

于 2013-07-30T12:31:19.240 に答える