2010-12-30 9 views
0

関連する質問を確認しましたが、この作業を行うための適切な組み合わせが見つかりませんでした。jQueryは他のdiv内の複数のdivを個別に切り替えます

私は別のdiv内でdivを表示/非表示しようとしています。 1ページに20個のラッパーdivがあります。

<div class="wrapper"> 
    <div class="date"></div> 
    <div class="subject"></div> 
    <div class="who"></div> 
    <div class="body"></div> 
</div> 

表示するように設定されているclass = "body" divを表示しようとしています。 in css。

jQueryのtoggle()、toggleClass()関数を使用してみましたが、成功しませんでした。

これまでのところ私はこれを持っています。

$('.wrapper').click(function() { 
    $('.body').toggle(); 
}); 

私は悲しそうに私はjQueryのを学ぶために始めた、これから続行する方法がわからない、それはコードの非常に小さな作品を知っています。

+0

。BODYのdiv要素のすべては、彼らがしているラッパーにもかかわらず、切り替えになり、私の答えを参照してください、私は何かを推測している省略すると、最大です。 '$(function(){/ * code here * /});の' click'イベントをラップしていることを確認してください; – hunter

答えて

2

あなたはonready機能でそれを入れてみました。この機能でそれを置く

$(function() { 
    $('.wrapper').click(function() { 
    $('.body').toggle(); 
    }); 
}); 

ドキュメントが完全にロードされた後、それが実行されます確実に...それ以外の場合は、(まだロードされていない要素にクリックハンドラを添付してみますと:そうが好きしたがって存在しません)。

+0

このコードの問題は、クリックされたラッパーの本文divだけでなく、すべてのbody divを切り替えることです。 – Dutchie432

+0

ああ、私は一度に1人だけが見せていると思った。なぜ私はそれを想定していないか分からない。 $( '。body').toggle(); 'の代わりに' $(this).find( '。body').toggle();を使います。 –

+0

....ちょうど私が下に投稿したように:) – Dutchie432

0

もう一度非表示にしたい場合は、別のクラスの切り替えを選択する必要があると思います。 bodyクラスをトグルすると、母乳から再び除外されます。これは、wrapperを再度クリックすると選択できません。

<div class="wrapper"> 
    W 
    <div class="date">d</div> 
    <div class="subject">s</div> 
    <div class="who">w</div> 
    <div class="body isbody">b</div> 
</div> 

とJavaScript:

$('.wrapper').click(function() { 
    $(this).children('.isbody').toggleClass('body'); 
}); 

http://jsfiddle.net/vuBNd/

+0

あなたはどのように表示されないものをクリックできますか? – hunter

+0

haha​​ - 実現して固定していると思います。 – zsalzbank

+0

最初のクリックで '.body'クラスを削除するので、これは間違いなく1回働くでしょう。 – hunter

2

JSFiddle(http://jsfiddle.net/XGsVE/3/)をご覧ください。このコードは、クリックされたラッパーのBODY divを切り替えます。 $(this)はこの作品

$('.wrapper').click(function() { 
    $(this).find('div.body').toggle(); 
}); 
+0

説明をありがとう。あなたが言ったように動作する、私はちょうどネイサンのような機能にそれを入れなければならなかった。 –

+0

次に、 '$(document).ready(function(){...を使うことをお勧めします}) 'とは対照的に' function(){...} ' – Dutchie432