2014-03-05 72 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

函数总是退出。返回错误会阻止下一次迭代(从而阻止计数器递增)。 –

相关问题