私はドラッグ&ドロップの重いページを作成し、ドラッグ可能な各要素にdefaultTop
とdefaultLeft
のプロパティを与えて、元の位置に簡単にリセットできます。突然、リセット機能はそれらの値を未定義として報告するまで、これはうまくいかなかった。彼らが壊れたときに私はこれらの作品に取り組んでいなかったので(彼らはしばらくの間働いていました)私はどこが間違っているのか分かりません。助けてくれてありがとう。プロパティが定義を失うのはなぜですか? (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