2015-03-31 3 views
0

Я практикую Javascript, и я пытаюсь понять, как переместить div слева от экрана вправо. Я сделал это в отдельном файле, чтобы проверить его первым, и он работает, однако, если я создаю класс и поместил мои функции и переменные внутри, он перестает работать, а Firebug не возвращает мне никаких ошибок. Может кто-нибудь мне помочь? Вот код, я понял:Не работает после его написания внутри класса

function crear_div(){ 
    this.pos_x  = 10; 
    this.pos_y  = 10; 
    this.x_min = 10; 
    this.x_max = 500; 
    this.y_min = 10; 
    this.y_max = 500; 

    this.incremento = 10; 
    this.estado = 0; 
    this.id_elemento = "pelota"; 

    this.f0 = f0; 
    this.f2 = f2; 

} 

function f0(){ 
    this.pos_x = this.pos_x + this.incremento; 
    document.getElementById(this.id_elemento).style.left = this.pos_x + "px"; 
    if (this.pos_x >= this.x_max){ 
     this.estado = 1; 
    } 
} 

function f2(){ 
    this.pos_x = this.pos_x - this.incremento; 
    document.getElementById(id_elemento).style.left = this.pos_x + "px"; 
    if (this.pos_x <= this.x_min){ 
     this.estado = 0; 
    } 
} 

function desplazar(){ 
    switch(this.estado){ 
    case 0: 
     this.f0(); 
     break; 
    case 1: 
     this.f2(); 
     break; 
    } 
} 

window.setInterval(function() {this.desplazar();}, 250);    
+0

'this' не установлено в' setInterval 'функция. – Barmar

+0

Вы никогда не называете 'crear_div'. – Barmar

ответ

0

Вы должны создать объект класса, и использовать его в интервальной функции:

var the_div = new crear_div(); 
window.setInterval(function() { 
    the_div.desplazar(); 
}, 250); 
Смежные вопросы