2014-02-24 36 views
0

我目前使用jQuery的cookie的按钮jQuery的Cookie和变量

$('.vote').one('click', function(){  
    var cookieid = ($(this).data("id")); //cookie name 
    alert ($.cookie(cookieid)); //..etc 

这给了我一个文本框,说“不确定”。但是,我确实知道变量cookieid已被分配,因为警报变量为我提供了一个值。

此外,如果我使用我知道已分配的“cookieid”,此脚本正常工作。例如,我有一个名为17的cookie。当我alert ($.cookie('17'));一切工作正常。

我敢肯定,问题不在我的代码结束,所以可以jQuery cookie不处理变量?

编辑:

//creating cookie if none already exists 
var cookieid = ($(this).data("id")); //cookie name 
     if ($.cookie(cookieid) == 'active') //if cookie exists 
     { 
      //do nothing 
     } 
     else 
     { 
      $.cookie(cookieid, 'active'); 
     } 

回答

1

($(this).data("id"))返回一个数字。

alert(typeof $(this).data("id")); //number 

尝试将其转换为字符串:

alert ($.cookie(cookieid.toString())); 

这里有一个工作示例:jsfiddle

+0

嗯,确实该cookie转换成仅需要提醒的字符串?我只是对示例使用了一个警报,也许这是唯一不起作用的地方。我已经编辑了关于如何使用它的其他信息。 –

+0

- 编辑,让它工作!谢谢。 –

+1

如果您的数据属性值是一个数字,this.data('id')将返回一个数字,但如果值是字符串,它将返回一个字符串。我想这就是为什么它不起作用。 – comrade