gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 10:17:05 25 4
gpt4 key购买 nike

我正在尝试创建一个 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。我递增它,以便下次单击时,该 Canvas 将存储在下一个索引中(目前可以很好地改进此整体流程;))。

最佳答案

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

K

关于javascript - 传递给 Javascript 函数时 jQuery 对象未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6349978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com