2013-02-13 57 views
2

我正在開發一個WordPress網站,將自定義帖子類型轉變爲頁面上的滑塊。我使用Sequence.js我的滑塊和我可以手動創建多個滑塊具有以下沒有問題:如何動態創建多個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"); 

我如何可以簡化這個?並且使其成爲動態的,因此爲製作的每個帖子創建一個滑塊。任何幫助將不勝感激。

編輯 - 加入工作答案

我通過轉動選項輸出到一個函數和簡單的調用爲每個序列實例的計數器中的函數所使用的答案從甲基異丙基苯下面的第一部分。然後使用他的答案的第二部分初始化每個序列滑塊,它的工作原理。

這就是我現在的工作:

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++; 
}); 

回答

1

我沒有使用序列但是從你的文章,我猜你希望能夠重新創建選項與數字的增量對象。所以,你可以做這樣的事情:

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

然後使用它像這樣:

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

或者在具體的例子:

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

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

而且做你正在談論怎麼樣關於給予所有序列相同的類如說custom-sequence,然後做這樣的事情:

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

這可能會也可能不會工作 - 我不清楚.data('sequence')正在做什麼。

+0

答案的第一部分不起作用。多個滑塊設置,但選項不分開。上一個按鈕和下一個按鈕無法正常工作,因爲在任一按下Next時,兩個滑塊都會前進。此外,滑塊顯示與使用相同選項創建的相同的行爲。 – 3oh6 2013-02-14 15:45:50

+0

您是否傳遞正確的數字以匹配''.next'+ number'?我假設帶有next和prev類的HTML是在別處創建的。它在jsbin.com(或類似網站)上工作的一個例子可以幫助您更快地找出問題。 – Cymen 2013-02-14 15:52:09

+0

是的,.next/.prev是使用匹配的迭代編號創建的。我將嘗試使用另一個滑塊插件,看看這個過程如何,我越看越這個,它看起來像序列JS是罪魁禍首。 – 3oh6 2013-02-14 16:28:46