2013-02-14 60 views
1

我st upon了一個小問題。jquery next()這個

試圖做一個簡單的手風琴導航。與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文本相關,或者至少與DOM中的其他內容有關?

回答

3

$(this)在點擊事件代表事件的來源,另一方面$('.text')代表所有元素的集合,這些元素有class文本。 $('.text').next().slideToggle()將在由選擇器$('.text')返回的第一個收集元素上調用slideToggle

+0

感謝您的快速重播和你的偉大的答案。 但是,你是不是說你的最後一句話 $(this).next()。slideToggle()會調用對選擇器$('。text')返回的集合的第一個元素的slideToggle ? – xhallix 2013-02-14 05:54:08

+0

不客氣@ChristophHa – Adil 2013-02-14 05:55:18

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.