2014-01-10 20 views
-1

海蘭的, 沒有人知道發生了什麼在JavaScript導致此錯誤:無法調用「應用」空

'Cannot call method 'apply' of null' 

?下面是代碼的某些部分:

this.tiles[i][j] = tile; 
var self = this; 
var tileOnClick = tile.onClick; 
tile.onClick = function (e){ 

    self.handleTileClick(tile, e); 
    tileOnClick.apply(tile, [e]); 


    }; 
    grid.prototype.handleTileClick=function(tile) 
{ 
    if(this.selectedTile) 
    { 
     this.selectedTile.select(false); 
    } 
    _onTileClick.apply(this,[tile]); 
    alert("click"); 
} 

所有我需要的是在哪裏看的一些想法。 該警報執行,我不明白爲什麼會與適用的pb ... 謝謝。

+3

'_onTileClick'似乎不存在任何地方。 – m59

回答

1

您將您的變量設置爲值tile.onClick之前您給該屬性一個值。在分配tileOnClick = tile.onClick時,它爲空。

您需要後做作業您綁定的事件,或者更好,重新思考你是如何做的:

var tileOnClick = function (e){ 

    self.handleTileClick(tile, e); 
    tileOnClick.apply(tile, [e]); 


    }; 

tile.onClick = tileOnClick;