2012-10-23 6 views
1

동일한 줄의 세 단락에 드롭 다운 효과를 만들려고 노력하고 있지만 작동하는 솔루션을 생각해 냈습니다. 그러나 여기에서 프로그래밍의 "DRY"규칙을 위반해야한다는 느낌이 들었습니다. 이 작업을보다 빠르고 효율적으로 수행 할 수있는 방법이 있습니까?jQuery에서 가장 효율적인 버튼을 선택하는 가장 효율적인 방법은 무엇입니까?

$(function(){ 

     var btn1 = $('.span4 .btn:eq(0)'); 
     var btn2 = $('.span4 .btn:eq(1)'); 
     var btn3 = $('.span4 .btn:eq(2)'); 
     var p1 = $('.span4 p:eq(0)'); 
     var p2 = $('.span4 p:eq(1)'); 
     var p3 = $('.span4 p:eq(2)'); 

     btn1.click(function(){ 

      p1.slideToggle('slow'); 

     }); 

     btn2.click(function(){ 

      p2.slideToggle('slow'); 

     }); 

     btn3.click(function(){ 

      p3.slideToggle('slow'); 

     }); 

}); 
+0

0-2에서'i'를 반복하고'.btn : eq (i)'를'p : eq (i)'에 붙일 수 있습니다. (단지 기본적인 생각이지만, 그럴 가능성은 * 내가 할 일이 될 것입니다.) – Eric

답변

1

p 가정, eq 선택기를 사용하지 않는 더 나은 방법은 버튼 옆에, 당신은 아래와 같이 할 수있다 :

$(function() { 
    $('.span4 .btn').click(funciton() { 
    $(this).next('p').slideToggle('slow'); 
    }); 
}); 
+0

마크 업이 반드시 사실 일 필요는 없습니다. –

+0

@MattBall 네, 그렇습니다. 왜냐하면 저는'추측 '을 사용하는 것이고, 제 요점은 다른 방법으로 할 수있는 것이고,'eq' 선택기를 사용하지 않는 것입니다. – xdazz

관련 문제