2013-07-23 51 views
2

我的設置看起來是這樣的:有沒有辦法在jQuery Cycle2插件中取消事件?

$(".slideshow").cycle({ 
    slides: ".slide", 
    timeout: 0, 
    speed: 200, 
    swipe: true 
}).on("cycle-before", function(e, opts, outgoing, incoming, forwardFlag){ 
    // trying to cancel event here when some condition is met! 
}); 

我試圖做的是檢查是否達到了一定的幻燈片,然後做一些其他的動作,而不是過渡的下一張幻燈片。

我試過return false,e.stopPropagation(),e.stopImmediatePropagation()及其組合,但無論我做什麼,幻燈片仍會繼續下一張幻燈片。

有沒有辦法取消過渡到從cycle-before事件處理程序內的下一張幻燈片?

+0

暫停幻燈片不適合你嗎?像$('#mySlideshow')。cycle('pause'); – Maurice

回答

1

的一種方法是重寫它們循環2的內部API作爲​​

描述只有調用原來的內部FN當你的條件得到滿足。它看起來像這樣:

$('#mySlideshow').on('cycle-bootstrap', function(e, optionHash, API) { 
     // advanceSlide handles next, prev 
     var origAdvanceSlide = API.advanceSlide; 
     API.advanceSlide = function(n) { 
      if (<condition>) { 
       origAdvanceSlide.call(API,n); 
      } 
     } 

     // jump handles the goto a specific slide 
     var origJump = API.jump; 
     API.jump = function(n) { 
      if (<condition>) { 
       origJump.call(API,n); 
      } 
     } 
    }); 
+0

不知道這些鉤子。非常感謝。 – bummzack

相關問題