[英]How do I make the click function on my carousel work when items are appended?
我在http://belmontfeed.com/site/上有一個(非常原始的)測試站點,我試圖在其中獲得右側的垂直傳送帶,以控制左側的照片。
“上一個” /“下一個”按鈕可以正常工作,通常單擊轉盤項目會加載與其關聯的照片,但是每當我允許在轉盤上包裝時,單擊將不再起作用。
我相信這是因為添加/添加會混淆click函數所基於的計數,但是我對jQuery還是相當陌生,並且不確定該轉向何處。
完整的代碼應在上述站點上可見。 任何幫助將非常感激!
if ( opts.allowWrap !== false ) {
// prepend and append extra slides so we don't see any empty space when we
// near the end of the carousel. for fluid containers, add even more clones
// so there is plenty to fill the screen
// @todo: optimize this based on slide sizes
opts.slides.slice(0, opts.slideCount).clone().css( slideCSS ).appendTo( wrap );
if ( opts.carouselVisible === undefined )
opts.slides.slice(0, opts.slideCount).clone().css( slideCSS ).appendTo( wrap );
opts.slides.slice(0, opts.slideCount).clone().css( slideCSS ).prependTo( wrap );
if ( opts.carouselVisible === undefined )
opts.slides.slice(0, opts.slideCount).clone().css( slideCSS ).prependTo( wrap );
wrap.find('.cycle-slide-active').removeClass('cycle-slide-active');
opts.slides.eq(opts.startingSlide).addClass('cycle-slide-active');
}
更新:最直接的單擊功能代碼如下:
$('#cycle-2 .cycle-slide').click(function(){
var index = ($('#cycle-2').data('cycle.API').getSlideIndex(this)-8);
slideshows.cycle('goto', index);
});
我添加了一個貧民窟修復方法,即僅將計數減去8(因為這是前置數),但是一旦達到8,它就會停止運行,直到它自動旋轉回一為止。 更具可持續性的修復將很可愛...
使用新的jQuery規范,您可以調用
$(document).on('click', '.cycle-carousel-wrap > div', function(e) {...});
這樣,jquery每次都會找到對象,而不管它是否已被修改/附加/等等。
希望這可以幫助!
修復! 通過快速修復並將運算符從“-”切換為“%”,我可以實現所需的結果。 要將其設置為動態數字,我將只用8個換成表示循環帖子數的變量。
$('#cycle-2 .cycle-slide').click(function(){
var index = ($('#cycle-2').data('cycle.API').getSlideIndex(this)%8);
slideshows.cycle('goto', index);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.