jqueryを使用してfancyboxを使用してカスタムギャラリーを作成していますが、問題が発生しています。ユーザーが次/前のボタンをクリックするたびに、私はjavascriptメソッドを呼び出しています。これにより、写真に関するすべての詳細が取得され、動的に表示されます。しかし、現在の方法では、画像の無限ループを実現することはできません。
たとえば、10枚の画像があり、ユーザーが10枚目の画像の後に次をクリックすると、最初の画像に移動し、前のボタンについてもこのようにループが続行されます。私はできる限りのことを試みましたが、それを理解することができませんでした。私のコードは
photoArrayは、ギャラリーに表示するすべての写真の情報で構成されるJSON配列です。
function showNextPrevious(value) {
var presentPhotoId = $('#presentId').val();
var length = photoArray.length;
if(value == "next") {
for(var i=0; i<photoArray.length; i++) {
if(i!=length-1) {
var id = photoArray[i].photo_id;
if(id == presentPhotoId) {
var tags = (typeof photoArray[i+1].tags!= "undefined")?photoArray[i+1].tags:"";
var caption = photoArray[i+1].caption;
var source = photoArray[i+1].owner;
var mainPhoto = photoArray[i+1].main_photo;
var photoId = photoArray[i+1].photo_id;
var path = photoArray[i+1].path;
var mediumpath = replaceAll(path,".jpg", "_medium.jpg");
var ownerlink = photoArray[i+1].source_link;
var owner = photoArray[i+1].owner;
$('#tag').text(tags);
$('#caption').text(caption);
$("#photoCount").text(((i+1)+1)+"/"+photoArray.length);
$('#presentId').val(photoId);
$('#owner').text(owner);
$('#mainphoto').attr("src" , mediumpath);
if(owner!='NULL' || owner.length>0) {
$('#ownerlink').attr("href" , "http://flickr.com/search/people/?q="+owner);
$('#ownerlink').attr("target" , "_blank");
} else {
$('#ownerlink').attr("href" , "javascript:void('0')");
$('#ownerlink').attr("target" , "_self");
}
if(mainPhoto == "Yes"){
$('#mainP').html('<div style="display:block;color:#000000;">Currently the main photo for this city.</div>');
} else {
$('#mainP').html('<div style="display:block;"><input name="" type="button" class="button-small" value="Make this the main photo for this city" onclick="javascript:changeMainPhoto(\''+photoArray[i+1].photo_id+'\','+photoArray[i+1].city+')" /></div>');
}
} // End of if(id == presentPhotoId)
}
}
} else if(value == "previous") {
for(var i = 0;i<photoArray.length;i++){
var id = photoArray[i].photo_id;
if(id == presentPhotoId){
var tags = (typeof photoArray[i-1].tags!="undefined")?photoArray[i-1].tags:"";
var caption = photoArray[i-1].caption;
var source = photoArray[i-1].owner;
var mainPhoto = photoArray[i-1].main_photo;
var photoId = photoArray[i-1].photo_id;
var path = photoArray[i-1].path;
var mediumpath = replaceAll(path,".jpg", "_medium.jpg");
var ownerlink = photoArray[i-1].source_link;
var owner = photoArray[i-1].owner;
$('#tag').text(tags);
$('#caption').text(caption);
$('#presentId').val(photoId);
$('#owner').text(owner);
$("#photoCount").text(((i-1)+1)+"/"+photoArray.length);
$('#mainphoto').attr("src" , mediumpath);
if(owner!='NULL' || owner.length>0) {
$('#ownerlink').attr("href" , "http://flickr.com/search/people/?q="+owner);
$('#ownerlink').attr("target" , "_blank");
} else {
$('#ownerlink').attr("href" , "javascript:void(0)");
$('#ownerlink').attr("target" , "_self");
}
if(mainPhoto == "Yes") {
$('#mainP').html('<div style="display:block;">Currently the main photo for this city.</div>');
} else {
$('#mainP').html('<div style="display:block;"><input name="" type="button" class="button-small" value="Make this the main photo for this city" onclick="javascript:changeMainPhoto(\''+photoArray[i-1].photo_id+'\','+photoArray[i-1].city+')" /></div>');
}
}
}
}
}