簡體   English   中英

附加項目后,如何使輪播工作的點擊功能生效?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM