2013-02-14 63 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.