Cycle2初始化事件未触发
我正在使用Cycle2作为基本的旋转木马。 我的幻灯片项有时在他们的数据中有一个url,因此我必须使用Cycle2 api事件来使用该URL。
我的问题是,当’cycle-after’事件触发时,没有任何初始化事件会触发。 所以如果我的第一张幻灯片有一个url,则没有任何反应。 这是我的代码:
pressSlideshow.on({ 'cycle-post-initialize': function(event) { console.log('call'); var a = $('img.cycle-slide-active'); var d = a.data('url'); if (d !== undefined) { pressLink.attr('href', a.data('url')).show(); } else { pressLink.hide(); } }, 'cycle-after': function(event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) { var a = $(incomingSlideEl); var d = a.data('url'); if (d !== undefined) { pressLink.attr('href', a.data('url')).show(); } else { pressLink.hide(); } } });
第一个事件永远不会触发,但是当我滚动幻灯片时,’cycle-after’事件工作正常。 我还尝试了从未触发过的’cycle-initialized’事件,以及仅在滚动后但未在初始化时触发的’cycle-update-view’事件。
是什么赋予了? &thnx提前:}
Cycle2活动文档
我刚遇到同样的问题。
来自FAQ
为什么循环初始化事件不会触发?
它确实如此,我保证。 但是如果你在事件监听器已经解雇后将其绑定,那么你将无法听到它。 仔细检查你是不是太晚了。
必须在运行cycle()init方法之前绑定事件。
假设您设置了以下代码:
var pressSlideshow = $('.pressSlideshow').cycle(); pressSlideshow.on({ 'cycle-post-initialize': function(event) { console.log('call'); var a = $('img.cycle-slide-active'); var d = a.data('url'); if (d !== undefined) { pressLink.attr('href', a.data('url')).show(); } else { pressLink.hide(); } }, 'cycle-after': function(event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) { var a = $(incomingSlideEl); var d = a.data('url'); if (d !== undefined) { pressLink.attr('href', a.data('url')).show(); } else { pressLink.hide(); } } });
改为:
$(document).on('cycle-post-initialize', '.pressSlideshow', function(){ console.log('call'); var a = $('img.cycle-slide-active'); var d = a.data('url'); if (d !== undefined) { pressLink.attr('href', a.data('url')).show(); } else { pressLink.hide(); } }); var pressSlideshow = $('.pressSlideshow').cycle(); pressSlideshow.on({ 'cycle-after': function(event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) { var a = $(incomingSlideEl); var d = a.data('url'); if (d !== undefined) { pressLink.attr('href', a.data('url')).show(); } else { pressLink.hide(); } } });
记下.pressSlideshow
选择器,因为你的选择器可能不同。
干杯