0

所以这是我奇怪的问题。

我有一个简单的“图像播放器/编辑器”,您基本上可以在其中移动图片并旋转和/或删除它们。播放器遍历图像的 json 列表并创建一个顺序数组 (0,1,2,3,...),以便我可以跟踪位置。左箭头键和右箭头键分配给移动 +1 或 -1 发​​送到顺序阵列以检索图像位置。

都很棒。我已将 D 指定为删除操作,该操作获取图片 ID 并发送 $.post 以从 DB 中删除图像,从 json 列表中删除,然后从更新 json 列表中重新创建顺序数组。现在这是踢球者。一旦我按下 D,我从 json 列表中删除项目,我更新 DB,现在在重新创建顺序数组后,我的下一个和后退操作(左箭头键,右箭头键)开始为每次按下 D 按钮添加 +1。

所以简而言之。当我重新开始时,数字变为 1、2、3、4、5...当我按删除时,数字继续为 7、9、11、13...如果我再次按删除,它将在 16、19 处继续, 21、24……等等……我不知道这是在哪里重新绑定……还是我错过了什么?

这是代码

var items = {"a1046229":{"id":"1046229","file_path":"\/2013\/05\/2177\/11\/600x500\/92909a26e6b3cd2ad96d4c6977bd9e74.jpg","raw_path":"\/2013\/05\/2177\/11\/92909a26e6b3cd2ad96d4c6977bd9e74.jpg","pos":1},"a1046230":{"id":"1046230","file_path":"\/2013\/05\/2177\/11\/600x500\/edd7996f61c135764c2a9e19444c308b.jpg","raw_path":"\/2013\/05\/2177\/11\/edd7996f61c135764c2a9e19444c308b.jpg","pos":2}.....

这是创建顺序数组的函数

function _prepare_images() {
    if (!imgList.length) {
        var name, pos = 0;
        for (name in items) {
            imgList.push({
                id: items[name].id,
                info: items[name],
                pos: pos++
            });
        }
    }
}

一旦我按 D 我从实际列表中删除

delete items['a' + image.data('id')];
imgList.length = 0;

所以现在当我按下下一个或上一个时,imgList 被重新创建......但开始跳过......

我一无所知。有人可以帮忙吗

4

0 回答 0