2014-02-25 142 views
0

我有這兩個輪播隨機選取圖片。 [fiddle]他們每個人(#carousel1,#carousel2)從他們自己不同的內部陣列中挑選圖片和鏈接。將附加值附加到jQuery中每個ID的變量

我的問題是輪播將有自己的圖像路徑和鏈接到不同的子域,但該腳本使用addImage("/pic/" + images[i][0], "/url/" + images[i][1]);}中的實際路徑(「url」和「pic」)。唯一的解決辦法我能想出使用的域名是作爲一個變量

var domain = "www.picture.com"; 
實際路徑的地方

「/ PIC /」和「/ URL /」,然後追加實際圖像路徑和鏈接根據輪播ID確定domain。我不知道如何做第二部分,如果這是正確的方式來做到這一點。誰會請給我一些解決方案?

function randomizeCarousel(selector, images) { 
    var i, l, carousel = $(selector); 

    function shuffle(images) { 
    var i, shuffled = []; 
    while(images.length) { 
     i = Math.floor(Math.random() * images.length); 
     shuffled = shuffled.concat(images.splice(i, 1)); 
    } 
    return shuffled; 
    } 

    function addImage(src, href) { 
    var container = $("<div>"), 
     link  = $("<a></a>").attr("href", href).appendTo(container), 
     img  = $("<img/>").attr("src", src).appendTo(link); 
    carousel.append(container); 
    } 

    images = shuffle(images.slice(0)); 
    for(i = 0, l = images.length; i < l; i++) { 
    addImage("/pic/" + images[i][0], "/url/" + images[i][1]); 
    } 

    carousel.jsCarousel({ 
    onthumbnailclick: function(src) { load(src); }, 
    autoscroll:  true, 
    circular:   true, 
    masked:   false, 
    itemstodisplay: 3, 
    orientation: 'h' 
    }); 
} 

$(function() { 
    randomizeCarousel("#carousel1", [...]); // add your 1st array here 
    randomizeCarousel("#carousel2", [...]); // add your 2nd array here 
    // ... etc. 
}); 
+0

我想我沒有真正看到的問題在你的代碼..爲什麼不只是創建2個域VAR和(域內,如果不同的路徑),2路乏,並把它們作爲合適? –

回答

0

是這樣的?

var domain1,domain2,path1,path2; 
    domain1 = 'http://domain.tld'; 
    domain2 = 'http://domain2.tld'; 
    path1 = domain1+"/pic/"; 
    path2 = domain2+"/url/"; 
    addImage(path1 + images[i][0], path2 + images[i][1]); 
+0

有沒有一種方法可以爲'#carousel1'分配path1而只爲'#carousel2'分配path2?從我所瞭解的情況來看,你的建議只會混合傳送帶中的所有動作。 – RedGiant

+0

我不知道你的插件是如何設置的,但你應該能夠將它作爲一個可選參數傳遞,或者在插件本身內部設置一些東西來處理它。 –