2014-03-05 3 views
1

저는 기초 프레임 워크로 작업 중이며 궤도 슬라이더를 사용하여 슬라이드 쇼의 실제 표시된 슬라이드 인덱스를 가져 오는 방법을 만들었습니다. Firefox에서는 모든 것이 올바르게 작동하고 함수는 올바른 실제 슬라이드 인덱스를 반환하지만 Chrome에서는 요청 된 요소가 HTML 코드에 포함되어 있지만 '-1'을 반환합니다. 그렇지 외부 함수에서, each에 전달 내부 콜백에서jQuery 메서드 'hasClass'는 FF에서는 제대로 작동하지만 크롬에서는 작동하지 않습니다.

// function for getting the actual slide index of a slide show 
function getActualSlideIndex(){ 
    $counter = 0; 
     $('#featured1 > li').each(function(){ 
      console.log($(this)); 
      if ($(this).hasClass('active')){ 
       return $counter; 
      } 
      $counter++; 
     }); 
    return -1; 
} 
+0

은 내가보기 엔 파이어 폭스에서 올바른 인덱스를 반환있어 의심 jsfiddle – zerkms

+1

에 재현하시기 바랍니다. 모든 브라우저에서 항상 -1을 반환해야합니다. 관련 코드로 바이올린을 만드실 수 있습니까? –

답변

1

그것은

function getActualSlideIndex() { 
    var index = $('#featured1 > li.active').index(); 
    return index == -1 ? -1 : index + 1; 
} 

데모로 단순화 할 수있다 : 당신은 아마이 원하는 Fiddle

1

귀하의 return $counter 돌아갑니다.

// function for getting the actual slide index of a slide show 
function getActualSlideIndex(){ 
     $counter = 0; 
     $('#featured1 > li').each(function(){ 
      if ($(this).hasClass('active')){ 
       return false; 
      } 
      $counter++; 
     }); 
     return $counter || -1; 
} 
+0

false를 반환하면 모든 것이 올바르게 종료됩니다. 나는 그저 돌아 오는 것이 그 기능을 끝내야한다고 생각한다. –

+0

'.each()'내부의 "return false"는 의미가 없으므로이 방법을 사용하면 코드를 더 잘 최적화 할 수 있습니다. –

+0

함수는 항상 종료됩니다. false를 반환하면 다음 반복이 방지되므로 카운터가 증가하지 않습니다. –

관련 문제