このトピックに関する多くの質問を検索しましたが、同様の回答がありますが、うまくいくはずですが、私にとってはうまくいきません。私はDOMのトラバーサルが私の強みではないことを認めているので、解決策があり、いくつかの文脈を与えることができれば、他の解決策がなぜ機能していないのか理解するのに役立ちます。スライドトグルがアクティブにならない
私はボタン付きのdivを持っており、ボタンクリック(このボタンはモバイルにのみ表示されます)では、現在のdivコンテンツのみをスライドさせる必要があります。私はこれを動作させることができますが、問題はすべてのdivsコンテンツを開くことです。ただし、$(this)、$(next)、$(prev)、$(find)などのソリューションを使用しても特定のカードのみを開くことはできません。
私が下に投稿しているコードは、まったく開きません。このコードは、Stack Overflowの回答と最もよく似ているため、このバージョンのコードを使用しています。
$(document).ready(function(){
\t
\t $('.mobile-icon').on('click', function(){
\t \t event.preventDefault();
\t \t $(this).next().find('.card-bottom').slideToggle();
\t \t console.log('hi there'); //this does print
\t });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- FIRST CARD -->
<div class="card">
<div class="card-top">
\t <h1 class="card-title">Headline</h1>
\t \t <a href="#" class="mobile-icon"> <span class="glyphicon glyphicon-plus"></span> </a>
\t \t <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
\t </div>
\t <!-- END CARD-TOP -->
\t \t \t \t
<div class="card-bottom">
\t <p>Content to be toggled</p>
\t </div>
<!-- END CARD BOTTOM -->
</div>
<!-- END CARD -->
<!-- SECOND CARD -->
<div class="card">
<div class="card-top">
\t <h1 class="card-title">Headline</h1>
\t \t <a href="#" class="mobile-icon"> <span class="glyphicon glyphicon-plus"></span> </a>
\t \t <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
\t </div>
\t <!-- END CARD-TOP -->
\t \t \t \t
<div class="card-bottom">
\t <p>Content to be toggled</p>
\t </div>
<!-- END CARD BOTTOM -->
</div>
<!-- END CARD -->
。コンソールのエラーが表示されますか? – jmargolisvt
これは私がコードをコピーしていたときに私の代わりにエラーでした。このポストで使用したいコードを取り上げるためにいくつかの変更を取り消していました。私はその舞台にイベントを含めることを忘れていた。事実、私はもともと「イベント」を「e」として渡しました。私は間違いとしてこの投稿から除外しました。同じミスをしているかもしれない人たちのために、私はそれをそのままにしておきます。私はどんなエラーも出ていなかったし、 "こんにちは"コンソールログだけでいいです。ありがとうございました! – user5854648