Спасибо, работает. Но дальше новая проблема. В методе объекта вызываю setInterval, в качестве функции к которой метод того же объекта. Но почему-то, независимо от того в каком объекте ставится setInterval, в качестве функции в нее попадает метод последнего объекта. Вот пример
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Пример</title>
<style type="text/css">
#button, #button2 {background:#f00; color:#fff; font-weight:bold; padding:3px 5px; cursor:pointer; float:left; position:relative}
#button2 {background:#f80;}
</style>
<script type="text/javascript">
window.onload= function() {
obj= new myclass(document.getElementById('button'))
obj2= new myclass(document.getElementById('button2'))
}
function myclass(objref, message) {
this.message=message
this.obj=objref
var self = this;
this.offset=0
this.timer = 0
this.intervalref
myclass.prototype.animate = function() {
if(this.timer==0) {
this.intervalref=setInterval(function() {self.animate()}, 5) //при клике кнопка должна плавно съехать вниз на30 px. Правая так и делает, но при
this.timer= 30 / 3 //нажатии на левую self.animate() вызывает obj2.animate() вместо своей obj.animate()
} else {
this.offset+= 3;
this.obj.style.top=this.offset+'px'
this.timer--
}
if(this.timer==0) {
clearInterval(this.intervalref)
}
}
this.obj.onclick = function() {self.animate()};
}
</script>
</head>
<body>
<div id="button">нажмии меня</div>
<div id="button2">нажмии меня 2</div>
</body>
</html>