0
我正在創建一個拖放沉重頁面,並給每個可拖動元素defaultTop
和defaultLeft
屬性,以便我可以輕鬆地將其重置爲原始位置。這很好,直到突然,重置函數報告它們的值爲undefined。由於我沒有在這些碎片破碎時進行工作(他們已經工作了一段時間),我不確定我出了什麼問題。謝謝您的幫助。爲什麼我的房產失去了定義? (JS)
創建該元素的作用是:
function makeTool(id, imgURL, defaultL, defaultT,trayname){
var a=document.createElement('img');
a.setAttribute('src', imgURL);
a.setAttribute('id',id);
a.setAttribute('class','drag');
a.intray=true;
a.tray=trayname;
a.rotation=0;
a.style.zIndex=document.getElementById(trayname).style.zIndex+1;
document.getElementById(trayname).appendChild(a);
a.defaultTop=ExtractNumber(document.getElementById(trayname).style.top)+defaultT;
a.defaultLeft=ExtractNumber(document.getElementById(trayname).style.left)+defaultL;
a.style.top=a.defaultTop+'px';
a.style.left =a.defaultLeft+'px';
a.addEventListener('touchstart', function(e) { return self.touchStart(e) }, false);
a.addEventListener('gesturestart', function(e) { return self.gestureStart(e) }, false);
a.addEventListener('touchmove', function(e) { return self.touchMove(e) }, false);
a.addEventListener('touchend', function(e) { return self.touchEnd(e) }, false);
tools.push(a);
return a;
}
和復位功能是:
function reposition(t){
console.log(t+' top: '+document.getElementById(t).defaultTop);
document.getElementById(t).style.left=document.getElementById(t).defaultLeft+'px';
document.getElementById(t).style.top=document.getElementById(t).defaultTop+'px';
}
這就是我得到的undefined
只是出於興趣:你爲什麼從頭開始寫很多東西?爲什麼不使用像jQuery這樣的庫來完成所有繁重的工作? – mydoghasworms
主要是因爲我正在學習,並且我在一段時間內沒有使用過jQuery,所以它不如其他時間節省太多時間 –
您是否嘗試過'console.log(a.defaultTop)'在哪裏'a.defaultTop'被定義?它從一開始就被賦予了「undefined」嗎?您的makeTool函數中的 – Tony