2012-01-04 9 views
4

jQuery 플러그인을 사용하고 있습니다. 여기에서 찾을 수 있습니다 : http://tutorialzine.com/2011/03/photography-portfolio-shutter-effect/ 조금 변경했습니다.jQuery를 사용하는 방법 .find()

여전히 완벽하게 작동하지만 사용자 cna가 다음 이미지로 건너 뛰기 위해 사용하는 다음 버튼을 추가 한 다음 한 루프의 간격을 전환하지 않도록 일시 중지합니다. 다음 그림이 너무 빨리.

그러나 내 문제는 prvious 버튼에 놓여 있습니다. 나는 그것을 할 방법 확실하지 않다, 그래서 내가 목록에 나는 어디 알 수 있도록 마지막 목록 항목의 위치를 ​​수있는 변수

var positionInt 

을 추가했습니다.

어떻게이 라인에 의해 생성 된 리튬 객체와 함께이 사용합니까 :

var container = $('#container'), 
    li = container.find('li'); 

올바른 리 항목을 열려면?

또한 li 객체의 길이를 어떻게 찾을 수 있습니까? li.size(), li.count() 및 li.length를 시도했지만 아무 것도 작동하지 않았습니다.

또는 .find() 메서드를 사용하여 현재 보이는 항목보다 li 항목을 여는 방법이 있습니까? 이것은 원래 앞으로가고 않는 방법입니다

li.filter(':visible:first').hide(); // Hid the only visible li 
if(li.filter(':visible').length == 0){ 
li.show(); // if nothing is visible load a li (Im not really sure what this is pointing at, but it loads the next li) 
} 

건배

답변

3

모두 lengthsize() 당신에게 JQuery와 객체의 요소의 수를 제공하기 위해 작동합니다.

http://jsfiddle.net/KeKPb/

은 내가 size() 호출의 오버 헤드를 필요가 없기 때문에이 수행하는 모든 내부 어쨌든 length를 사용할 때 length 더 자주 사용되는 것을 찾을 수 있습니다.

두 방법 모두 완벽하게 유효하기 때문에 "작동하지 않음"이란 의미를 정의해야합니다.

당신이 좋아하는 li 년대의 수를 얻을 수 있습니다
12

:

$prev_li = $("#container ul li:eq(" + (index-1) + ")"); 

해야 할 것 : 당신이 현재 사용의 현재 인덱스를 알고있는 경우

var nr_li = $("#container ul li").length; 

<li> 당신이 수행하여 이전을 얻을 수 있습니다 하지만 계산 결과를 확인하고 해당 범위를 확인하여 범위를 벗어나서 눈에 띄지 않는 요소에 도달하지 않도록하십시오.

당신이 할 수있는 또 다른 일은 <li>을 통해 순환하고 각각을 예를 들어 배열에 추가하는 것입니다. 그러면 이전 배열을 배열에서 끌어낼 수 있습니다.

var array_li = new Array(); 

$('#container li').each(function() { 
    array_li.push($(this)); 
}); 
+0

배열에 루프를 적용 할 이유가 없습니다. 'eq'를 사용하여 jquery 객체에서 특정 요소를 가져 오거나 jquery 객체 자체를 배열로 사용할 수 있습니다. '$ ("# container ul li") [2]'필요하다면 http://api.jquery.com/get/를 사용하여 배열을 얻을 수도 있습니다. –

+0

나는 구현에 따라 유용 할 수도있는 가능한 솔루션을 제공하고 있습니다. 어쨌든,'eq' 메쏘드는 제 대답에도 설명되어 있습니다. – Jules

관련 문제