2013-02-13 3 views
2

Je travaille sur un site WordPress qui transforme un type de message personnalisé en curseur sur une page. J'utilise Sequence.js pour mon curseur et je peux créer manuellement plusieurs curseurs aucun problème avec les éléments suivants:Comment créer dynamiquement plusieurs curseurs jQuery?

//sequence slider options to be used by slider1 
var options0 = { 
    sartingFrameID: 1, 
    cycle: true, 
    autoPlay: false, 
    nextButton: '.next0', 
    prevButton: '.prev0', 
    fallback: { 
     theme: "fade", 
     speed: 100 
    } 
} 

//slider1 
var sequence0 = $(".slideContainer0").sequence(options0).data("sequence"); 

//sequence slider options to be used by slider2 
var options1 = { 
    sartingFrameID: 1, 
    cycle: true, 
    autoPlay: false, 
    nextButton: '.next1', 
    prevButton: '.prev1', 
    fallback: { 
     theme: "fade", 
     speed: 100 
    } 
} 

//slider2 
var sequence1 = $(".slideContainer1").sequence(options1).data("sequence"); 

Comment puis-je simplifier cela? Et aussi le rendre dynamique afin qu'un curseur soit créé pour chaque message qui est fait? Toute aide serait grandement appréciée.

modifié - réponse ajouté travail

je la réponse de Cymen ci-dessous pour la première partie en tournant les options de sortie en fonction et en appelant simplement la fonction d'un compteur pour chaque instance de séquence. Puis utilisé la deuxième partie de sa réponse pour initialiser chaque curseur de séquence et cela fonctionne un régal.

C'est ce que je travaille maintenant:

function options(number) { 
    return { 
     startingFrameID: 1, 
     cycle: true, 
     autoPlay: false, 
     nextButton: '.next' + number, 
     prevButton: '.prev' + number, 
     fallback: { 
      theme: "fade", 
      speed: 100 
     } 
    }; 
} 

var count = 0; 
$('.slideContainer').each(function() { 
    var sequence = $(this); 
    sequence.sequence(options(count)).data('sequence'); 
    count++; 
}); 

Répondre

1

Je ne l'ai pas utilisé, mais la séquence de votre post, je devine que vous voulez être en mesure de recréer les options objet avec un incrément du nombre. Ainsi, vous pouvez faire quelque chose comme ceci:

function options(number) { 
    return { 
    startingFrameID: 1, 
    cycle: true, 
    autoPlay: false, 
    nextButton: '.next' + number, 
    prevButton: '.prev' + number, 
    fallback: { 
     theme: "fade", 
     speed: 100 
    } 
    }; 
} 

ensuite l'utiliser comme ceci:

$(target).sequence(options(0)).data("sequence"); 

Ou dans votre exemple précis:

//slider1 
var sequence0 = $(".slideContainer0").sequence(options(0)).data("sequence"); 

//slider2 
var sequence1 = $(".slideContainer1").sequence(options(1)).data("sequence") 

Et pour faire ce que vous parlez de la façon dont à propos de donner toutes les séquences de la même classe comme dire custom-sequence et puis faire quelque chose comme ceci:

var count = 0; 
$('.custom-sequence').each(function() { 
    var sequence = $(this); 
    sequence.sequence(options(count)).data('sequence'); 
    count++; 
}); 

Cela peut ou ne peut pas fonctionner - il n'est pas tout à fait clair pour moi ce que fait le .data('sequence').

+0

La première partie de votre réponse ne fonctionne pas. Les curseurs multiples sont configurés, mais les options ne sont pas séparées. Les boutons Précédent et Suivant ne fonctionnent pas correctement lorsque les deux curseurs avancent lorsque vous appuyez sur Suivant sur l'un ou l'autre. De plus, les curseurs présentent le même comportement que s'ils étaient créés avec les mêmes options. – 3oh6

+0

Passez-vous le bon numéro pour faire correspondre ''.next' + number'? Je suppose que le HTML avec les classes suivantes et précédentes est créé ailleurs. Un exemple de travail sur jsbin.com (ou un site similaire) permettrait de vous aider à le comprendre plus rapidement. – Cymen

+0

Oui, les fichiers .next/.prev sont créés avec un numéro d'itération correspondant. Je vais essayer avec un autre plugin slider et voir comment ça se passe comme plus je regarde ça, plus on dirait que Sequence JS est le coupable. – 3oh6

Questions connexes