传递给Javascript函数时,jQuery对象未定义

时间:2011-06-14 20:51:19

标签: javascript jquery object parameters

我正在尝试将html元素创建为jQuery对象,然后在javaScript函数中引用它。然而,在将它作为参数传递给函数之后,对象变为“未定义”。

//globals
var handCanvasArray = new Array();
var canvasIdNum = 0;

单击jQuery Mobile按钮后,我创建一个新的canvas元素,将其存储在一个数组中,并尝试在函数中使用它:   

//this code fires due to a button click
handCanvasArray[canvasIdNum] = $(document.createElement('canvas'));

//store the current canvasIdNum, then increment it for the next click
currCanvasID = canvasIdNum;
console.log("CurrCanvasID: " + currCanvasID);
canvasIdNum += 1;
Animate(handCanvasArray[currCanvasID]);

function Animate(pCanvasToAnimate) {
  console.log(pCanvasToAnimate);
  var canvasOffset = pCanvasToAnimate.offset();
}

控制台打印两行:
[对象]
未定义

程序执行在尝试将偏移量分配给变量时停止,因为pCanvasToAnimate不被视为对象。也许我正在宣布新元素不正确?或者,也许我对javascript如何处理对象参数感到困惑/困惑。

有没有更好的方法将对象作为参数传递?

编辑:为清晰起见进行编辑。对不起人!实现我遗漏了一些关于数组索引的代码,但是当调用Animate()时,currCanvasID变量将等于canvasIdNum。我增加它,以便下次单击时,该画布将存储在下一个索引中(此时整体流程可以很好地改进;))。

1 个答案:

答案 0 :(得分:0)

如果将handCanvasArray声明为全局,请尝试仅将currCanvasID传递给Animate()函数,然后直接从中引用handCanvasArray。

ķ