Javascript数组索引是一个var

时间:2010-06-03 15:56:37

标签: javascript

我正在开发一个动态生成Jquery标签的网站。每个标签都有一个ID。

出于我的脚本的目的,我需要知道用户在标签中点击了多少次。

记录我正在考虑做这样的数组的点击次数:

var i  = new Array(my_tab_id);
(...)
i[my_tab_id] = 0;

my_tab_id根据我们所在的选项卡动态变化。遗憾的是,似乎my_tab_id的值不会被转换为数组。我没有i [5] = 0,i [6] = 0等等,而是我[my_tab_id],这对简单的var来说无济于事。

有什么建议吗?谢谢!

4 个答案:

答案 0 :(得分:7)

在这种情况下,您不应该使用数组,您应该使用一个对象,您可以将其视为哈希。

var o = {};
var id = 'x';
o[id] = 1;
alert(o[id]);

答案 1 :(得分:1)

这应该允许您在每次单击选项卡时使用jQuery中的.data()函数将点击计数存储到每个选项卡上。

$('#example').bind('tabsselect', function(event, ui) {
    var count = parseInt(ui.tab.data("clickCount"));
    if (isNaN(count)) count = 0;
    count++;
    ui.tab.data("clickCount", count);
});

答案 2 :(得分:0)

调用my_tab_id时,您确定i[my_tab_id] = 0;是整数吗?

答案 3 :(得分:0)

我想我理解你的问题 你说var i只有一个元素。发生这种情况是因为每次打开新选项卡时都会新实例化var i。我猜每个标签都是新页面,或者至少是var i的新上下文 如果你想在不同的页面之间保留一个对象的实例(比如一个数组),看看jStorage,它允许你在浏览器上本地保存数据,这样可以更容易地在页面之间维护上下文负载。
如果所有选项卡都在同一页面上,那么解决方案就更容易了,您需要将数组保存在页面的全局变量中。