0
這讓我瘋狂,我不知道是什麼導致了這個問題。我有兩個數組,其中一個列出pageID,另一個列出頁面。Jquery變量沒有得到正確的值,除非我有警報
當我嘗試使用下面的代碼時,'頁面'總是發回'前面'。如果在我聲明變量「var newObject」之前在for循環中發出警報,則輸出正確,頁面顯示「front,insideLeft,insideRight和back」。
所有其他屬性都輸出正確。
請在下面找到我的代碼:
var pageID = ["cardFront","cardInsideL","cardInsideR","cardBack"];
var pages = ["front","insideLeft","insideRight","back"];
for (var i=0; i<pageID.length; i++) {
var cfTextarea = $('#' + pageID[i] + ' textarea'); //array of textareas
//Get each textarea properties and encode to json
$("#" + pageID[i] + " textarea").each(function(){
var txtOffset = $(this).offset();
var divOffset = $("#" + pageID[i]).offset();
var newObject = {
'page' : pages[i],
'id' : $(this).attr('id'),
'src' : $(this).attr('src'),
'width' : $(this).width(),
'height' : $(this).height(),
'top' : txtOffset.top - divOffset.top,
'left' : txtOffset.left - divOffset.left,
'rotation' : '0',
'colour' : $(this).css("color"),
'size' : $(this).css("font-size"),
'bold' : $(this).css("font-weight"),
'underline' : $(this).css("text-decoration"),
'align' : $(this).css("text-align"),
'font' : $(this).css("font-family"),
'text' : $(this).val()
};
data.textareas.push(newObject);
});
}
這聽起來像一個競爭條件 – alexandernst
這是一個範圍問題,並且傳遞給每個函數的函數在循環生命週期中僅編譯一次。 –
謝謝你的幫助。我通過給函數添加一個變量來修復我的代碼,例如$(「#」+ pageID [i] +「textarea」)。 「如果你沒有提到」每個「只會得到i = 0 – jmgibbo