2012-01-22 3 views
0
내가 코드를 사용하고

를 클릭 할 때마다 표시하는 방법 아래 나는 다음을 표시하려면,배열에서 3 개 항목을 내가 버튼을

//Hides all but first 3 items in the array 
@$('.question_container')[3..-1].hide() 

기본적으로 배열의 첫 번째 3 개 항목을 표시합니다 버튼을 클릭하면 배열에 3 개의 항목이 표시되고 그 다음 3 개의 항목은 버튼을 다시 클릭하면 반복됩니다.

현재, 내가 클릭하면 그럴 게요 표시 만 3 개 항목을 수 있도록 내가 위의 코드를 수정하는 방법 다음 코드

showMoreQuestions: (e) -> 
    e.preventDefault() 
    @$('.question_container')[3..-1].show() 
    false 

으로 클릭에 배열의 모든 나머지 항목을 표시 할 경우에만 수 있어요 내 단추?

+0

그건 무슨 언어 니? (질문에 태그를 잊었습니까?) – nnnnnn

+0

@nnnnnn jQuery를 사용하여 C, Pseudo 및 Javascript의 콤보처럼 보입니다 ^^; –

+0

@nnnnnn 나는 그것이 coffeescript라고 믿는다 –

답변

1

여기서 추측하고 있지만 숨겨진 것만 선택했다면 이론적으로 매번 처음 3 개를 표시하고 작동시켜야합니다. 당신은 단지 많은 사람들이 현재 볼 수 있습니다 방법을 살펴 가질 필요가

showMoreQuestions: (e) -> 
    e.preventDefault() 
    first = @$('.question_container:visible').length - 1 
    @$('.question_container')[first .. first+3].show() 
    false 

:

showMoreQuestions: (e) -> 
    e.preventDefault() 
    @$('.question_container:hidden')[0..2].show() 
    false 
1

난 당신이 찾고있는하지만 어쩌면 이런 일이 트릭을 할 것입니다 정확히 어떤 행동 확실하지 않다 이것을 사용하여 show의 슬라이스를 만듭니다. showMoreQuestions에 전화 할 때마다 3 번 더 표시됩니다.

데모 :이 같은 http://jsfiddle.net/ambiguous/Ybz8h/ 당신이 한 번에 세를 보여 (보다는 한 번에 세 개를 공개) 할 경우

, 무언가 :

showMoreQuestions: (e) -> 
    @offset ?= 3 
    e.preventDefault() 
    $('.question_container')[@offset - 3 .. @offset ].hide() 
    $('.question_container')[@offset  .. @offset + 2].show() 
    @offset += 3 
    false 

데모 : http://jsfiddle.net/ambiguous/r8Hhb/

관련 문제