3

div onclickイベントを折りたたむ必要があり、別のクリックでdivを折りたたむ

私のjqueryは次のとおりです

$(".fold_reply").click(function() {

    if ($('.reply').css('display', 'none')) {
        $(".reply").show("fold", {}, 500);
    }
    else {
        $(".reply").hide("fold", {}, 500);
    }

});​

そして、私が折りたいdivは、最初の時点でdisplay:noneを持っています

返信タグ<divclass= "reply" style = "display:none;">最初の返信では表示されません

クリックするとdivは折りたたまれますが、他のdivでは折りたたまれ
ません助けてください

4

5 に答える 5

5
$(".fold_reply").click(function() {
    $(".reply").toggle(500)
}

Toggleは、現在の状態に応じて要素を表示または非表示にし、ifブロックを削除します。

例については、このフィドルを確認してください。

http://jsfiddle.net/z9rGz/3/

于 2012-10-27T09:39:16.243 に答える
4

はい@levibの答えは短く、正しいものを使用します。もう1つの方法は、slideUp()およびslideDown()関数を使用できることです。

$(".fold_reply").click(function() {

    if ($('.reply').css('display', 'none')) {
        $(".reply").slideDown("slow");
    }
    else {
        $(".reply").slideUp("fast");
    }

});​
于 2012-10-27T09:58:55.880 に答える
3

それを行うjquery.toggleまたはjqueryUI.toggleメソッドを使用する必要があります。

しかし、ロジックのエラーは$('.reply').css('display', 'none')です。これにより、がに設定displayされnoneます。かどうかはチェックしませんnone...

そのコードを使用する必要がある場合は、次のように変更する必要があります

if ( $('.reply').css('display') === 'none') )
于 2012-10-27T09:38:02.750 に答える
1

toggle()jQuery UIエフェクトを使用しているように見えるため、のjQueryUIバージョンを使用してください

.toggle(効果[、オプション] [、期間] [、完了])

参照:http ://api.jqueryui.com/toggle/

$(".fold_reply").click(function() {
     $(".reply").toggle("fold",  500);
})
于 2012-10-27T09:48:02.700 に答える
0
$(".fold_reply").click(function() { 
     var style=$('.reply').css('display');
    if (style=='none') {
        $(".reply").show(500);
    }
    else {
        $(".reply").hide(500);
    }

});​

<input type="button" class='fold_reply' value="button">

<div class='reply'>
    text<br/>text<br/>text<br/>text<br/>text
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

作業デモ

于 2012-10-27T09:39:03.243 に答える