继续'接下来'图像使用cookie

Continue with 'next' image using cookies

本文关键字:cookie 接下来 继续 图像      更新时间:2023-09-26

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

我在浏览器中检查了cookie值,它设置得很好。但当我实际使用一个新会话时,它似乎使用了变量"rightnow"的值"1",并显示了第一个图像。我的代码出了什么问题?(使用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 }); 
      });
    });

这一行有一个(或两个)错误:

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

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

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

将if语句更改为:

if (!rightnow) { rightnow=1;} 

这是因为null在JavaScript中是错误的。

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

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

假设您实际上将NaN存储到了一个cookie中。jQuerycookie插件神奇地将保存在cookie中的字符串"NaN"转换为实际值NaN。因此,当您将字符串"NaN"与值NaN进行比较时,其结果将为false。看看这个小提琴在控制台上打印的内容,自己看看:http://jsfiddle.net/6VMqb/