如何在应用程序的不同部分提供对象数组?

时间:2013-07-29 23:06:19

标签: jquery

我在点击函数中创建了一个对象数组,如下所示:

    $(".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
    })

2 个答案:

答案 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",...]