2014-03-05 106 views
1

我正在使用基礎框架並使用軌道滑塊,我創建了一種獲取幻燈片放映的實際顯示幻燈片索引的方法。在Firefox中,一切正常,函數返回正確的實際幻燈片索引,但在Chrome中返回'-1',儘管HTML代碼包含了所請求的元素。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

我很懷疑它的返回在Firefox中正確的索引。它應該始終在任何瀏覽器上返回-1。你可以用相關的代碼做一個小提琴嗎? –

回答

1

它可以簡化爲

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

演示:Fiddle

1

return $counter從您傳遞給each,而不是從外部函數內部回調的回報。你可能希望這樣的:

// 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

函數總是退出。返回錯誤會阻止下一次迭代(從而阻止計數器遞增)。 –

相關問題