2012-01-05 3 views
2

jQuery를 사용하여 '아코디언'효과를 만들려고합니다. 나는 그것이 단지 다음 div가되어야 할 때 나의 'h5'가 열리는 모든 divs를 클릭 할 때만 작동하도록했습니다. ,jQuery를 사용하여 다음 div 만 대상으로 지정

$('.accordion h5').next().slideToggle('slow', function() { ... 

$('.accordion h5') 일치하는 모든 h5 내부 .accordion 사업부를 : 클릭 기능 내부 http://jsfiddle.net/GnAhs/1/

답변

2

이있다 : 당신이 무슨 뜻인지 볼 수 있도록

$('.accordion h5').click(function() { 
     $('.accordion h5').next().slideToggle('slow', function() { 
     // Animation complete. 
     }); 
}); 

나는 바이올린을했습니다 그래서 그들 모두는 토글됩니다. 선택기를 this으로 변경하여 클릭 된 요소에만 영향을줍니다.

$('.accordion h5').click(function() { 
     $(this).next().slideToggle('slow', function() { 
     // Animation complete. 
     }); 
}); 
1

당신은 this의 사용을해야합니다 요소가 클릭 된에 click 이벤트의 콜백 함수 내부

$('.accordion h5').click(function() { 
    $(this).next().slideToggle('slow', function() { 
     // Animation complete. 
    }); 
}); 

this

항상 연결합니다. 따라서 클릭 된 요소를 선택한 다음 $(this).next()으로 다음 요소를 선택합니다. http://jsfiddle.net/GnAhs/2/

+0

Ahh thankyou, 잘못된 길을 ... – Liam

1

그냥 대신 $('.accordion h5').next()$(this).next() 쓰기,

$('.accordion h5').click(function() { 
     /*change this->*/$(this).next().slideToggle('slow', function() { 
     // Animation complete. 
    }); 
}); 
0
$('.accordion h5').click(function(){ 
    $(this).next("div").slideToggle('slow', function() { 
     // Animation complete. 
     }); 
}); 
0

당신은 단지 SlideToggle

에 대한 귀하의 선택을 변경해야하는 코드의 모든 .accordion h5와 일치 : 여기

는 작업 데모입니다대신

지정해야합니다 $(this).next().slideToggle()

관련 문제