无法调用null的方法'apply'

时间:2014-01-10 23:49:46

标签: javascript

HY,  有谁知道在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与申请... 谢谢。

1 个答案:

答案 0 :(得分:1)

您在将赋予该属性值之前,将变量设置为tile.onClick 的值。在您指定tileOnClick = tile.onClick时,它为空。

你需要在绑定事件后进行分配,或者更好的是,重新考虑你是如何做到的:

var tileOnClick = function (e){

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


  };

tile.onClick = tileOnClick;