图片库项目计数?

Image gallery item counting?

我正在尝试使用存储在 json 对象中的数据创建一个简单的图片库。它工作得很好,除了我似乎无法在关闭图像后成功 'reset' 图像计数,而且每次我打开图像时顺序都是错误的。我知道这与模数有关,但我不知道我哪里出错了。

$.getJSON('js/work.json', function(data){

  var current = 0;
  var projects = data.projects;
  var currArr;

  $('.work-row > div').on('click', function(){

    current = 0;

    var i = $(this).index('.work-row div');
    currArr = projects[i];

    preloadImages(currArr, function(){


      $('.pop-forward').click(function(){
        current ++;
        current = current % currArr.images.length;
        $('.pop').css('backgroundImage', 'url(../images/work/main/'+currArr.dir+'/'+currArr.images[current].src+'.jpg)');
      });


      $('.pop-back').click(function(){
        current--;
        current = (current < 0) ? currArr.images.length-1 : current;
        $('.pop').css('backgroundImage', 'url(../images/work/main/'+currArr.dir+'/'+currArr.images[current].src+'.jpg)');
      });


      $('.close-image').click(function(){
        current = 0;
      });

    });

  });

这里是 json:

{
  "projects": [
      {
          "dir" : "project1",
          "copy" : "Lorem Ipsum",
          "images" : [
          { 
           "src": "image1"
          },
          { 
           "src": "image2"
          },
          { 
           "src": "image3"
        }
      ]
    }
 ]
}

任何帮助将不胜感激!!

current = current % currArr.images.length; 

应该是

current = current >= currArr.images.length ? 0 : current; 

这应该可以解决排序问题。

将全局 current 变量放在第一个函数之前。