所以我正在制作一个使用面料的产品 - 试图添加可排序的图层..但是我找到的每个jsfiddle示例,我都会遇到每个问题的相同问题..
问题是:在对可排序图层重新排序后,当您单击任何给定的li时,它会突出显示错误的画布对象。
如果你转到这个段落下面的链接,添加几个对象,然后重新排列li,然后点击你移动的其中一个,你可以重新创建问题..它会选择错误的对象(让我们说你添加三个图层,然后移动添加到顶部的第一个图层,然后单击顶部的li它将不会选择正确的图层,而是我认为最初存在的图层?)
https://jsfiddle.net/peLcju2h/24/
我认为问题可能是在重新排列图层时objectArray数组没有更新 - 所以当选择一个时,它会从原始顺序中选择它们所在的位置?
代码中的这个区域:
`
$("#containerLayers").sortable({
update: function(event, ui){
var items = $(this).children();
items.each(function(i,item){
canvas.sendToBack(objectArray[item.id]);
});
canvas.renderAll();
}
});
$("#containerLayers").disableSelection();
`
我尝试将对象数组代码放回可排序的代码区域,以便每次重新排序li时重新填充数组,但这对我不起作用..我尝试过这样的事情:
`
var objectArray = new Array();
var i='0';
var objects = canvas.getObjects();
objects.forEach(object=>{
var thisobject = objects[i];
i++;
});
objectArray.push(thisobject);
`
任何帮助都会非常感激!!! :)