2016-02-29 59 views
0

我使用lightGallery和我使用的是動態創建畫廊,這是代碼生成一個圖片:對於內環路對象的JavaScript

$(this).lightGallery({ 
    dynamic:true, 
    dynamicEl: [{ 
     'src':'css/images/pictures/gal_'+id+'/1.jpg', 
     'thumb':'css/images/thumbnails/gal_'+id+'/1.jpg' 
    }] 
}); 

這個id變量始終是相同的,但我想循環使用一個數字,例如我從變量x中獲取。所以,如果x=4生成的代碼是這樣的:

$(this).lightGallery({ 
    dynamic:true, 
    dynamicEl: [{ 
     'src':'css/images/pictures/gal_'+id+'/1.jpg', //here's 1 
     'thumb':'css/images/thumbnails/gal_'+id+'/1.jpg' 
    },{ 
     'src':'css/images/pictures/gal_'+id+'/2.jpg', //here's 2 and so on 
     'thumb':'css/images/thumbnails/gal_'+id+'/2.jpg' 
    },{ 
     'src':'css/images/pictures/gal_'+id+'/3.jpg', 
     'thumb':'css/images/thumbnails/gal_'+id+'/3.jpg' 
    },{ 
     'src':'css/images/pictures/gal_'+id+'/4.jpg', 
     'thumb':'css/images/thumbnails/gal_'+id+'/4.jpg' 
    }] 
}); 

所以我想的問題是如何包含的對象內循環,如果這甚至有可能,在此先感謝!

+0

很抱歉,如果這是一個新手問題的方法,我不使用jQuery和JavaScript的好: ( –

+2

在初始化'lightGallery'之前創建'objects'的'array',然後傳遞持有'array'的變量 – Rayon

回答

0

不可以。在對象定義中不可能有控制結構(如循環)。您需要先創建圖像的陣列,像這樣:

var dynamicEl = []; 
for (var i = 1; i <= 4; i++) { 
    dynamicEl.push({ 
    'src':'css/images/pictures/gal_' + id + '/'+ i + '.jpg', 
    'thumb':'css/images/thumbnails/gal_' + id + '/' + i + '.jpg' 
    }); 
} 

然後將其傳遞到對象的定義:

$(this).lightGallery({ 
    dynamic:true, 
    dynamicEl: dynamicEl 
}); 
+0

作爲上面的答案,這工作,謝謝! –

+0

但把'4.jpg'改成''+ i +'。jpg' –

+0

是的,你說得對。謝謝。 – nstoitsev

0

試試這個

var genEls = function(id, count) 
{ 
    var els = []; 
    for(i = 1; i <= count; i++) 
    { 
     els.push({ 
      'src':'css/images/pictures/gal_'+ id + '/' + i + '.jpg', 
      'thumb':'css/images/thumbnails/gal_' + id + '/' + i + '.jpg', 
     }); 
    } 
return els; 
} 

var id = 3; 
var count = 4; 
$(this).lightGallery({ 
    dynamic:true, 
    dynamicEl: genEls(id,count); 
}); 

這是爲內聯因爲它可以得到;)

希望這會有所幫助...

+1

感謝此工作! –

+0

我已經更新了我的答案,使其更易於管理!請將其標記爲答案,以便其他人可以輕鬆識別出適用於您的內容!保持良好的工作,真棒! –

+0

確實!儘快標記它,再次感謝! –

0

首先創建動態生成大拇指

function genThumbs(count, id) 
{ 
    var arr = []; 
    for (var counter = 1; counter <= count; counter++) 
    { 
     arr.push({ 
     'src':'css/images/pictures/gal_'+id+'/' + counter + '.jpg', 
     'thumb':'css/images/thumbnails/gal_'+id+'/' + counter + '.jpg' 
     }); 
    } 
    return arr; 
} 

然後用同一邊撥打畫廊

$(this).lightGallery({ 
    dynamic:true, 
    dynamicEl: genThumbs(5, id) 
});