0

slideDown を使用すると、最初にリンクをクリックしたときにボックスが表示され、slideDown しませんが、その後のすべてのクリックでは、意図したとおりに機能します。

http://jsfiddle.net/3Gc6Q/

4

4 に答える 4

3

box.removeClass("hide");slideDown完全なデモの後でなければなりません: http://jsfiddle.net/3Gc6Q/9/ :

$(".link").click(function(e) {

    e.preventDefault();
    var box = $("#test");

    if (box.hasClass("hide")) {

        box.slideDown(function(){box.removeClass("hide");});
    }
    else {
        box.slideUp(function() {

            box.addClass("hide");

        });

    }


});
于 2012-04-10T13:24:40.580 に答える
0

使ってみてslideToggle()

$(".link").click(function(e) {

    e.preventDefault();
    var box = $("#test");

    box.slideToggle('slow');
});​

これにより、そこにあるものが大幅に簡素化されます。また、「テスト」で取得した不要な CSS の一部を削除することもできますdiv

これが実際の例です:http://jsfiddle.net/zYAcB/1/

于 2012-04-10T13:24:13.693 に答える
0

取り除くだけ

box.removeClass("hide");

を呼び出すとslideDown、div が表示されます。現在、「非表示」クラスを削除すると、それが表示され (そのクラスの css によって隠されているため)、slideDown呼び出しは何もしません。クラスを削除しない場合は、希望どおりに表示されます。

または、アニメーションが完了したときにクラスを削除できます。

box.slideDown(function() {
  box.removeClass("hide");
});
于 2012-04-10T13:24:22.123 に答える
0

修正済み: http://jsfiddle.net/3Gc6Q/8/

于 2012-04-10T13:24:23.247 に答える