0

前の行でリンクがクリックされたときに、スライドトグルが非表示のテーブル行を表示するように機能させようとしています。最初にスライドがスムーズでないという問題がありましたが、slidetoggleがテーブルの行でうまく機能しないことがわかりました。そこで、行内のdivの非表示の行にコンテンツを貼り付け、代わりに非表示にすることにしました。私の問題は、jqueryが行内でそのdivを見つけるための正しいコードを理解できないように見えることです。

ここにJSfiddleの例があります:http://jsfiddle.net/yrM3H/811/

私のコードの例は次のとおりです。

html:

<table>
    <tr>
        <td>
            <div class="hidden">Expanded!</div>
        </td>
    </tr>
    <tr>
        <td><div class="toggle">Content</div></td>
    </tr>
    <tr>
        <td>
            <div class="hidden">Expanded!</div>
        </td>
    </tr>
</table>

js:

jQuery(document).ready(function () {
    jQuery(".toggle").parent().parent().next().children().next(".hidden").hide();
    jQuery(".toggle").click(function () {
        $('.active').not(this).toggleClass('active').parent().parent().next().children().next('.hidden').slideToggle(300);
        $(this).toggleClass('active').parent().parent().next().children().next('.hidden').slideToggle("fast");
    });
});
4

2 に答える 2

3
$("td").click(function(){
         $(this).parent("tr").next("tr").find("td div.hidden").slideToggle();
    });

http://jsfiddle.net/kmd97/yrM3H/816/

于 2013-02-12T18:55:09.763 に答える
2

これで問題が解決するはずです:http://jsfiddle.net/yrM3H/813/

.find('hidden')子要素を見つけるために2行目に使用するように変更しました。以前は、要素がまったく見つかりませんでした。

余談ですが、すべての .hidden 要素を$('.hidden').hide();?で非表示にしない理由がわかりません。

于 2013-02-12T18:49:29.357 に答える