不幸的是,我无法轻松粘贴生成变量的整个脚本,但我认为它也不相关。如有需要,请指导了解更多详情。
Javascript显示了这一点:
console.log(gl.boxes);
显示:
[{element:{0:{jQuery19104057279333682955:9}, context:{jQuery19104057279333682955:9}, length:1}, boxName:"testi1", boxX:1, boxY:"180"}]
所以gl.boxes[0]
应该存在吧?仍然...
console.log(gl.boxes[0])
显示:未定义。
那么我在这里可以缺少什么?
编辑:我将粘贴更多关于 gl.boxes 生成的代码。应该主要是关于首先将变量创建为数组:
gl.boxes = [];
然后有一个处理创建和推送新对象的函数:
this.addBox = function (box) {
var retBox = {};
retBox.element = $(document.createElement('div'));
retBox.boxName = box.boxName;
retBox.boxX = box.boxX ? box.boxX : rootParent.defaultX;
retBox.boxY = box.boxY ? box.boxY : rootParent.defaultY;
retBox.element
.html(retBox.boxName)
.addClass(rootParent.boxClass)
.offset({ left: retBox.boxX, top: retBox.boxY })
.draggable({
stop: gl.URLs.dragStopDiv(retBox)
});
retBox.element.appendTo(rootParent.containerDiv);
gl.boxes.push(retBox);
return retBox;
};
对象是基于 URL 创建的。IE。在这个测试中,我有内联 JS:
gl.objects.addBox({"boxName":"testi1","boxX":"50","boxY":"180"});
只有使用 gl.boxes 的其他地方才会基于对象生成 URL:
for(key in gl.boxes) {
var position = gl.boxes[key].element.position();
uri +=
"boxName["+key+"]="+gl.boxes[key].boxName+"&"+
"boxX["+key+"]="+position.left+"&"+
"boxY["+key+"]="+position.top+"&";
}