[英]Javascript seemingly existing object
不幸的是,我無法輕松粘貼生成變量的整個腳本,但我不認為它也是相關的。 如有必要,請指示更多詳細信息。
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+"&";
}
也許您需要更改循環以使用索引:
var i = 0,
position = {};
for (i = 0; i < gl.box.length; i += 1) {
position = gl.boxes[i].element.position();
uri += "boxName[" + i + "]=" + gl.boxes[i].boxName + "&" + "boxX[" + i + "]=" + position.left + "&" + "boxY[" + i + "]=" + position.top + "&";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.