Показать сообщение отдельно
  #1 (permalink)  
Старый 25.05.2012, 18:54
Новичок на форуме
Отправить личное сообщение для LizzarD Посмотреть профиль Найти все сообщения от LizzarD
 
Регистрация: 09.05.2012
Сообщений: 6

Навешивание события в конструкторе
в общем есть класс Duck, хочу сделать, чтобы при создании очередной утки ей присваивался обработчик onclick( при нажатии должна выполнять функция прототипа, которая перемещает утку на странице на 30 px). Создаю 2 утки, на странице они отображаются, но при нажатии на любую из них перемещается только та, что создана последней. Я новичок, если кто может - объясните, или пальцем ткните, где почитать и найти решение
function duck(sea,yPosition,color){
	this.sea=sea
	this.y=yPosition
	this.x=0
	this.color=color
	this.image=document.createElement('img')
	this.image.style.position="absolute"
	this.image.src=color+"-duck.gif"
	this.sea.appendChild(this.image)
	this.image.style.top=this.y
	this.image.style.left=this.x
	that = this
	this.image.onclick = function(){
		that.swim();
	}
	
}
duck.prototype={
//здесь наши методы
	swim : function(){
		if(this.x<800){
			this.x+=30
			this.image.style.left=this.x
		}else{
			this.say('The sea is over, i can not swim any more')
		}
	},
	say : function(text){
		alert(text+'; and my color is '+this.color)
	}
}
Ответить с цитированием