0

我正在使用 jQuery 和 jQuery UI,而且我对 JavaScript 几乎是新手。我想在window对象中设置一个全局变量,以便保留与多个 jQuery 对象相关的自定义数据。也就是说,此时我正在使用以下(差)代码:

// Given
window.myDataObject = {};

// Then, in the same file, I run multiple times (one time for each 'tag_id_1', 
// 'tag_id_2', ..., 'tag_id_N') the following code
var tag      = $('#tag_id_N')
myDataObject = { pagination: { page : 1, per_page: 10 } } // This aims to keep pagination data for tags.

由于我试图将数据保存多个 tags,因此多次运行上述代码会使 swindow.myDataObject不断“重新初始化”(使保存过程效率低下)。因为那样,我想添加“命名空间”属性(也许,命名空间与每个tag对象相关的“某些东西”),window.myDataObject以便每个tag都有自己的分页数据。

我怎样才能做到这一点?这种方法是“好”/“正确”的继续方式吗?

4

2 回答 2

0

首先,您应该使用window对象 not windows。其次,如果您想使用多个标签,您可以尝试执行以下操作: // Given windows.taggedObjects = {};

// Then, in the same file, I run multiple times (one time for each 'tag_id_1', 
// 'tag_id_2', ..., 'tag_id_N') the following code
var tagId = 'tag_id_N';
// This aims to keep pagination data for tags.
window.taggedObjects[tagId] = { tag: $('#' + tagId), pagination: { page : 1, per_page: 10 } };

要检索您的数据,只需再次使用标签 ID,如下所示:

alert(window.taggedObjects[tagId]);
于 2012-12-03T11:00:29.567 回答
0

我认为您只是在寻找.data()方法:

.data()方法允许我们以一种安全的方式将任何类型的数据附加到 DOM 元素,从而避免循环引用,从而避免内存泄漏。

我们可以为单个元素设置几个不同的值并稍后检索它们:

于 2012-12-03T11:01:22.693 回答