2009-11-14 8 views
0

J'ai utilisé le plugin jquery cycle (malsup.com/jquery/cycle) et il fonctionne exactement comme je veux, sauf qu'il ne semble pas reconnaître la première diapositive comme diapo. J'utilise la fonction onAfter pour activer et désactiver les liens/prev suivant et afficher la page 1 de? mais le lien suivant persiste tout seul sur la page 2 (quand vous vous attendez à ce que le lien prev soit apparu) et, bien que les pages soient comptées correctement, la page 2 apparaît comme la page 1 de 7 même comme la vraie page). Vous pouvez voir ce que je veux dire à:Jquery Cycle Plugin

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

La structure de divs est très impliqué, mais je pense qu'il est sain et, comme je le dis , le plug-in est le comptage des divs ok.

code ci-dessous:

$(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); 
} 

}); 

je serais vraiment reconnaissant pour toute aide à ce sujet.

Matthew

Répondre

1

Vous n'êtes pas incrémentez currSlide dans votre après rappel. Essayez quelque chose comme ceci:

$(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

Merci beaucoup pour cela - malheureusement, il ne résout pas le problème. Il saute maintenant la diapositive 2 et provoque le recouvrement de toutes les diapositives. – Matthew

+0

Je viens aussi de remarquer que vous avez placé la méthode onAfter dans la méthode document.ready. Essayez le changement que j'ai mis dans mon édition ci-dessus. – SimonDever

+0

Merci encore Ambrosia - J'ai finalement découvert que le code original échoue seulement si le fx: (qui régit l'effet de transition) est défini sur 'none'. Tous les autres effets (scrollHorz, fade etc) fonctionnent parfaitement. Merci encore pour votre temps. – Matthew