在jquery函数中访问数组' undefined'

时间:2015-04-12 01:01:31

标签: javascript jquery arrays

我有一个2维数组。 我试图在我的Mousemove jquery函数INSIDE我的Canvas函数中访问它。当我这样做时,我得到以下错误:

  

未捕获的TypeError:无法读取属性' 0'未定义的

function Canvas(_canvas) {

            this.pixels = new Array();
        for (var i = 0; i<this.canvas.width; i++) {
            var row = new Array();
            for (var j=0; j<this.canvas.height; j++) {
                row.push(i*j);      
            }
            this.pixels.push(row);  
        }

        $("#" + _canvas).mousemove(function(e){
            var offset = $(this).offset();
            console.log(this.pixels[parseInt(e.clientX-offset.left)][parseInt(e.pageY-offset.top)]);  
        });



};

我的数组可以从我的Canvas函数中的任何其他函数正确访问,除了Jquery函数。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

this别名加入that以避免实例与事件提升元素之间的事件处理程序出现歧义:

function Canvas(_canvas) {
            var that=this;
            this.pixels = new Array();
        for (var i = 0; i<this.canvas.width; i++) {
            var row = new Array();
            for (var j=0; j<this.canvas.height; j++) {
                row.push(i*j);      
            }
            this.pixels.push(row);  
        }

        $("#" + _canvas).mousemove(function(e){
            var offset = $(this).offset();
            console.log(that.pixels[parseInt(e.clientX-offset.left)][parseInt(e.pageY-offset.top)]);  
        });



};