使用Cookie继续“下一张”图片

时间:2013-07-11 18:38:06

标签: javascript jquery jquery-cookie

我将图片保存为'image_1.jpg','image_2.jpg'等。 单击“下一步”按钮时,将加载新图像。变量名'rightnow'用于递增数字并更改img src attr中的URL。我试图将此变量的值存储在cookie中,以便即使使用新会话也会继续下一个图像加载。

我检查了浏览器中的cookie值,即设置正常。但是当我实际使用一个新会话时,似乎使用值“1”表示变量'rightnow'并显示第一个图像。我的代码出了什么问题? (使用jQuery Cookie插件v1.3.1)

    $(document).ready(function(){
var highone=9; 
var rightnow=$.cookie("mycookieismine");
if (rightnow=='NaN') { rightnow=1;} 
      $("#next-img").click(function(){
        rightnow=rightnow+1; if (rightnow>highone) {rightnow=1;}; 
        $(".imga-class").attr('src',"http://example.com/images/image_"+rightnow+".jpg");
        startTime = new Date().getTime();
        var date = new Date();
        var minutes = 10;
        date.setTime(date.getTime() + (minutes * 60 * 1000));
        $.cookie("mycookieismine",rightnow, { expires: date }); 
      });
    });

1 个答案:

答案 0 :(得分:0)

你在这一行有一两个错误:

if (rightnow=='NaN') { rightnow=1;} 

考虑没有设置cookie的初始情况。变量rightnow将为null,因为$ .cookie(" mycookieismine");返回null。

null不等于NaN ,所以当你向它添加一个时,它就变成了NaN。

将您的if语句更改为:

if (!rightnow) { rightnow=1;} 

这是有效的,因为null在JavaScript中是假的。

这条线实际上还有一个问题:

if (rightnow=='NaN') { rightnow=1;} 

让我们假设你实际上将NaN存储到cookie中。 jQuery cookies插件神奇地变成了字符串' NaN'保存在cookie中的NaN实际值。所以当你比较字符串' NaN'对于值NaN,它将评估为false。看看这个小提琴在控制台中打印出来以便自己查看:http://jsfiddle.net/6VMqb/