我创建了一个名为Circle
的对象,并有两个该对象的实例,分别叫做circle1
和circle2
。我试图让它们交换位置,但目前只有其中一个在移动。
Javascript:
var gap = 6, size= 60;
var Circle = function(t,l, color){
var elem = document.createElement('div');
t = t,
l = l;
elem.setAttribute("class", "circle");
elem.style.backgroundColor = color;
// init positions
elem.style.top = gap+t*(size+2*gap) + "px";
elem.style.left = gap+l*(size+2*gap) + "px";
document.body.appendChild(elem);
this.getPosition = function(){
return [t,l];
};
this.setPosition = function(arr){
t = arr[0];
l = arr[1];
elem.style.top = gap+t*(size+2*gap) + "px";
elem.style.left = gap+l*(size+2*gap) + "px";
};
}
// make two new circle objects
var circle1 = new Circle(0, 0, "blue");
var circle2 = new Circle(0, 1, "red");
// we need the circles to swap positions
setTimeout(function(){
circle1.setPosition(circle2.getPosition());
circle2.setPosition(circle1.getPosition()); // this is not working
}, 1000);
我已经将此代码放在jsFiddle上,以使它更容易使用:http://jsfiddle.net/rhL7671p/
getPosition()
时,circle1
的位置已经发生了改变。 - Jamiec