2009-11-14 169 views
0

我一直在使用jquery循环插件(malsup.com/jquery/cycle),它的功能与我想要的完全一样,只是它看起来并没有将第一张幻灯片识别为幻灯片。我正在使用onAfter函数来打开和关闭下一个/ prev链接,并适当地打开和关闭 显示页面1?但是下一个链接在第2页 上自己保留(当您预期前导链接已经出现时),并且尽管 页面的计数正确,但页面2显示为与实际页面1相同的第1页,共7页 )。你可以明白我的意思的:jquery循环插件

http://www.nottingham.ac.uk/~ttzelrn/ma-tesol/module1/unit1/index.php

的div的结构相当复杂,但我认为这是声音,正如 我说,插件计数的div确定。下面

代码:

$(document).ready(function() { 
     $('#cycle-content').cycle({ 
     fx:  'none', 
     prev: '#prev', 
     next: '#next', 
     after: onAfter, 
     timeout: 0 
     }); 

function onAfter(curr, next, opts) { 
var index = opts.currSlide; 
$('#prev')[index == 0 ? 'hide' : 'show'](); 
$('#next')[index == opts.slideCount - 1 ? 'hide' : 'show'](); 

var caption = 'Page ' + (opts.currSlide + 1) + ' of ' + 
opts.slideCount; 
$('#caption').html(caption); 
} 

}); 

我会为任何帮助,真的很感谢。

马修

回答

1

你不会在你的回调后递增currSlide。尝试这样的:

$(document).ready(function() { 
     $('#cycle-content').cycle({ 
     fx:  'none', 
     prev: '#prev', 
     next: '#next', 
     after: onAfter, 
     timeout: 0 
     }); 
}); 

function onAfter(curr, next, opts) { 
    var index = opts.currSlide; 
    $('#prev')[index == 0 ? 'hide' : 'show'](); 
    $('#next')[index == opts.slideCount - 1 ? 'hide' : 'show'](); 
    opts.currSlide++; 
    var caption = 'Page ' + (opts.currSlide) + ' of ' + opts.slideCount; 
    $('#caption').html(caption); 
} 
+0

非常感谢这 - 很遗憾,它不能解决问题。它现在跳过幻灯片2并导致所有幻灯片相互重叠。 – Matthew 2009-11-14 16:56:33

+0

我也只是注意到你已经把onAfter方法放在document.ready方法中。试试我上面编辑的修改。 – SimonDever 2009-11-15 02:00:19

+0

再次感谢Ambrosia - 我终于发现,如果fx:(它支配转换效果)被设置为'none',那么原始代码只会失败。所有其他效果(scrollHorz,淡入淡出等)完美地工作。感谢你的宝贵时间。 – Matthew 2009-11-15 13:44:22