2013-03-11 42 views
2

我有一個非常基本的jQuery轉盤輸出此代碼之前:計數的項目數一類的jQuery

<div class="flexslider"> 
    <ul class="slides"> 
     <li><a>red</a></li> 
     <li><a>green</a></li> 
     <li><a class="flex-active">blue</a></li> 
     <li><a>black</a></li> 
     <li><a>white</a></li> 
    </ul> 
</div> 
<div id="count"></div> 

我要輸出當前幻燈片編號(幻燈片3/5),但使用的.index( )似乎沒有工作。它繼續以「-1」的形式出現,並且不會隨着傳送帶滑動而更新。

var total = $('.carousel li').length; 
var current = $(this).find('.flex-active'); 

$("#count").html($('li').index(current) + ' of ' + total); 

例如: http://files.marksy.com/public/slider/index.html

+1

是什麼'this'?在什麼事件/功能你調用這個JavaScript? – musefan 2013-03-11 14:06:57

+0

此外,您正在尋找'a'標籤的索引,我認爲它不在列表中。可以試試'$(this).find('。flex-active')。parent()'獲取當前'li'元素 – musefan 2013-03-11 14:09:19

+0

你試過了:var current = $(this).find('。flex-active 「).parent()? – 2013-03-11 14:11:51

回答

2

這一切有點混亂,$(這)是不是你之後,你也找到了李的孩子,所以它的索引將是錯誤的,需要得到它的父母。我已經清理了一下。

http://jsfiddle.net/jozzhart/uMNvB/

var $slides = $('.slides li'); 
var $current = $slides.find('.flex-active').parent(); 

var index = $slides.index($current) + 1; 
var total = $slides.length; 

$("#count").html(index + ' of ' + total); 
0

在你的榜樣,你正在使用FlexSlider

$('.flexslider').flexslider({animation:"slide"}); 

FlexSlider存儲當前幻燈片編號,你可以使用after -callback得到這個值:

$('.flexslider').flexslider({ 
    animation: "slide", 
    after: function(slider) { 
     alert (slider.currentSlide); 
    } 
}); 

您可以在文檔中閱讀更多關於它。它位於「高級」選項卡中,並以「The new, robust Callback API」開頭。

1

莫比這樣的輸出:

<div class="flexslider"> 
    <ul id="flex-UL" class="slides"> 
     <li><a>red</a></li> 
     <li><a>green</a></li> 
     <li id="flex-active"><a>blue</a></li> 
     <li><a>black</a></li> 
     <li><a>white</a></li> 
    </ul> 
</div> 
<div id="count"></div> 

其bether可行

比:

var listItem = $('#flex-active'); 
var listTotal= $("#flex-UL li").size() 
$('#count').html('Index: ' + $('li').index(listItem) + '/' + listTotal); 

輸出:

red 
green 
blue 
black 
white 

指數:2/6

0

O和您的設置:

輸出
var listItem = $(".flex-active").parent(); 
    var listTotal = $(".slides li").size(); 
    var listitemNow = $('li').index(listItem); 
    listitemNow++; 
    $('#count').html('Index: ' + listitemNow + ' of ' + listTotal); 

指數
red 
green 
blue 
black 
white 

:5的3