2011-07-14 45 views
0

我有3個循環每頁,他們都工作得很好,有一個例外。他們的計數器顯示3個幻燈片中的1個「1/3」,所有這些計數器都會一起更新。如果我將第一個循環前進到第2張幻燈片,其他兩個循環的計數器也會增加,這樣所有三個顯示都會顯示「2/3」。這裏是我的代碼:jQuery循環插件:多個循環實例獨立工作,但他們的計數器不是

$('.slides').each(function() { 
    var $this = $(this), $ss = $this.closest('.slide-container'); 
    var prev = $ss.find('a.slide-control-previous'), next = $ss.find('a.slide-control-next'); 
    $this.cycle({ 
     fx: 'scrollHorz', 
     pause: 1, 
     prev: prev, 
     next: next, 
     speed: 1000, 
     after: onAfter 
    }); 
}); 
function onAfter(curr,next,opts) { 
    var caption = '<span>' + (opts.currSlide + 1) + '</span>/' + opts.slideCount; 
    $('.slide-count').html(caption); 
} 

問題顯然是在function onAfter但我似乎無法找到如何從$this.cycle通過循環容器ID爲onAfter。有任何想法嗎?

回答

0

accepted answer here關於如何找到表弟元素幫我找到了解決這個問題的辦法。代替我上面的代碼中的$('.slide-count').html(caption);,這個工作原理:

$(this).closest(':has(.slide-count)').find('.slide-count').html(caption);