我在点击函数中创建了一个对象数组,如下所示:
$(".tableButton").click(function()
{
CK.tableArray = ["test1","test2","test3","test3"]; // this works
processTableInfo(CK.tableArray); // this works
});
现在我需要使用上面的click函数中相同的数组信息从应用程序的另一部分访问CK.tableArray。我需要从上面访问这个数组中不同的元素范围...
$(".displayTable").click(function()
{
alert(CK.tableArray) // not define
})
答案 0 :(得分:2)
一种方法是将变量驻留在全局命名空间下,例如window。
$(".tableButton").click(function()
{
window.tableArray = ["test1","test2","test3","test3"]; // this works
processTableInfo(window.tableArray); // this works
});
然后通过全局命名空间访问它:
$(".displayTable").click(function()
{
alert(window.tableArray) // not define
})
在您发布的示例中,它实际上取决于CK的定义位置(范围)。有关此问题的详细信息,请访问Functions and function scope上的MDN文章。
您还可以查看MDN文章Scope Cheatsheet
您还可以查看以下StackOverflow post
答案 1 :(得分:2)
如果您的目标是仅传递array
个对象,请尝试使用window
对象进行处理。
window.tableArray = ["test1","test2",...]