1

私は小さな問題に困惑しました。

簡単なアコーディオンナビゲーションを作成しようとしています。jqueryで、しかし私が理解できない何かに気づきました。

これが私のコードです

<div class="box"> Item 1</div>
<div class="text"> Text Box </div>
<div class="box"> Item 2</div>
<div class="text"> Text Box 2</div>
<div class="box"> Item 3</div>
<div class="text"> Text Box 3</div>

JS

$('.box').click(function(){
    $('.text').slideUp()
    $(this).next().slideToggle()    
})

私が使用する場合、私が疑問に思うのは

    $(this).next().slideToggle()      

すべてが正常に動作します。

今、私は次のように(これを)置き換えようとしました:

    $('.text').next().slideToggle() 

しかし、効果は異なります。私は(これは)div-textに関連しているのでしょうか、それとも少なくともDOMの他の何かに関連しているのでしょうか?

4

2 に答える 2

3

クリックイベントの$(this)はイベントのソースを表し、一方、 テキスト$('.text')を持つすべての要素のコレクションを表しclassます。 セレクターによって返されたコレクションの最初の要素で$('.text').next().slideToggle()を呼び出します。slideToggle$('.text')

于 2013-02-14T05:49:49.730 に答える
1

要するに:

$(this) // <----Represents current target which got the event

その間:

$('.text') // <--- this is a collection of all elems with class '.text' so all
           // -----will be getting events simultaneosly.
于 2013-02-14T05:54:32.710 に答える