1

私はこの小さな細部を何時間もいじり回してきましたが、解決策が本当に本当に単純であると確信しているにもかかわらず、ついに諦めました。

divに".address"というパネルがあり、overflow:hiddenがあるため、関数がアクティブになるまで表示されません。「.click」ボタンをクリックすると、アドレスdivが非表示領域から表示ビューにスライドダウンします。これまでのところこれは機能しますが、2回目のクリックでスライドして戻らない理由がわかりません。

    $(".click").click(function(){
        $(".address").animate({top:"0"},{duration:200});
            }, function() {
        $(".address").animate({top:"-55px"},{duration:200});
    });

誰かが私にこれに対する解決策を説明できますか?それはおそらく明白な解決策ですが、私はそれを理解することができません。

4

2 に答える 2

3

次の.toggle()ように、2つ(またはそれ以上)の関数間を循環する必要があり.click()ます(最初の関数を使用しているだけではありません)。

$(".click").toggle(function(){
    $(".address").animate({top:"0"},{duration:200});
}, function() {
    $(".address").animate({top:"-55px"},{duration:200});
});
于 2010-11-19T00:29:23.977 に答える
0

これが楽しいアプローチです。

$(".click").click(function() {
    var idx = 0;
    return function() {
        $(".address").animate({top: (idx = ++idx % 2) ? 0 : -55}, {duration: 200});
    };
}());

例: http: //jsfiddle.net/jSsgM/1/

@Nickのソリューションは、よりクリーンで賢明であり、特に複雑なことを行う場合に使用する必要があります。

于 2010-11-19T00:56:09.247 に答える