我正在开发一个动态生成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来说无济于事。
有什么建议吗?谢谢!
答案 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,它允许你在浏览器上本地保存数据,这样可以更容易地在页面之间维护上下文负载。
如果所有选项卡都在同一页面上,那么解决方案就更容易了,您需要将数组保存在页面的全局变量中。