0

私の基本的なセットアップは、アコーディオン効果を作成するために.slideDown()とを使用しています。.hide()ボタンまたはその下の要素にクリックされたものである「トグル」divがあります.slideDown()。これは、デフォルトでは非表示になっています$(this).next().slideDown()

これを if ステートメント内で行っていますif($(this).next().is(":hidden")) {Do this};。これにより、基本的に同じ div を何度も使用でき、すべてスクリプトの単一ブロックで制御できます。これらの div は垂直に積み上げられます: トグル div > 非表示の div > トグル div > 非表示の div など。

私がやりたいのは.hide()、クリックされた「トグル」divの上のdivです。これは以前は非表示で、.slideDown(). そして見えるようになりました。

を使用しようとしましたがif($(this).closest('.hidden').is(':visible')) {Do this};、「hidden」は問題の要素のセレクターであり、その要素をターゲットにしてから.hide()成功しませんでした。

を読んだ.closest()ので、この目的で使用しようとしました。また、div を直接ターゲットにしようとしましたが、同じ div のインスタンスが複数あるため、クリックされている div に関連する div を区別する必要があります。

これが私が取り組んでいるプロジェクトです: http://www.jeremiahdesign.com/GD491/weekSix/portfolio/index.html

これはクラスのプロジェクトです。どんな洞察でも大歓迎です。

4

2 に答える 2

0

jQuery を見てみましょう.prev():

 $(this).prev().slideUp()
于 2012-09-10T17:24:29.497 に答える
0

私がよく理解していれば、次の命令を使用して、必要な正確な div を取得できます。

$(this).prevAll("div.ex-link")

これにより、以前に開いたリンクを取得できます

于 2012-09-10T17:26:32.540 に答える