2016-07-26 27 views
-1

不執行的代碼是沒有做任何事情,圖像只是靜止不動JavaScript函數都

下面的代碼,我評論哪裏不運行的功能是

如果問題是太模糊問我細節,我不知道該如何解釋這種更加簡單比它已經是

var Car=function(x,y) { 
    this.x=x; 
    this.y=y; 
}; 

Car.prototype.draw=function() { 
    var carHtml='<img src="http://nostarch.com/images/car.png">'; 
    this.carElement=$(carHtml); 
    this.carElement.css({ 
     position:"absolute", 
     left:this.x, 
     top:this.y, 
    }); 
    $("body").append(this.carElement); 
}; 

Car.prototype.moveRight=function() { // Function that isn't working 
    this.x+=5; 
    this.carElement.css({ 
     left:this.x, 
     top:this.y 
    }); 
}; 
var tesla=new Car(20,20); 
var nissan=new Car(100,200); 
tesla.draw(); 
nissan.draw(); 
var ID=setInterval(nissan.moveRight(),1500); 
+1

'變種ID =的setInterval(nissan.moveRight.bind(日產),1500)的內部;' –

+0

的setInterval的第一個參數是一個函數,所以不要調用它:setInterval(nissan.moveRight.bind(...),1500); –

+0

我也想指出''left'和'top' CSS屬性必須有一個單位。 '左:20'無效。使用'left:this.x +「px」'指定單位。 –

回答

0

這個問題似乎是與此行

var ID=setInterval(nissan.moveRight(),1500); 

setInterval的第一個參數是function或回調函數。所以您可能需要僅通過nissan.moveRight或把它的功能

var ID=setInterval(function(){nissan.moveRight()},2500); 

JSFIDDLE