Cookie作为图像名称并获取设置背景的值

时间:2014-07-31 16:03:34

标签: javascript jquery background

我不想设置cookie探索图像名称,然后获取值并设置为背景图像名称。

<li class="bg"><a href="#"><img src="{style_images_url}/backgrounds/bac1.png" /></a></li>

我的js代码

jQuery(document).ready(function(){

   /* for thumbnail click event */
   jQuery('li.bg a').on('click',function(){
      jQuery("body").css('background-image', "url({style_images_url}/backgrounds/bac1.png)");
      jQuery.cookie("bgimg", "url({style_images_url}/backgrounds/bac1.png)", { expires: 7, path: '/'});
   });

   /* for page refresh */
   jQuery("body").css("background-image", "jQuery.cookie('bgimg')");
});

所以,正如你所看到的,我试图获得一个cookie值并使用它。 jQuery.cookie('bgimg')应该包含url({style_images_url}/backgrounds/bac1.png) - 这是我图片的地址。

所以我在记住背景方面遇到了问题,因为一切正常,背景正在改变,但页面刷新背景是默认的。

提前致谢。

更新

jQuery(document).ready(function(){

   jQuery("body").css({ "background-image": jQuery.cookie("bgimg") });

   jQuery("li.bg > a").on('click', function(){
      jQuery("body").css({"background-image": jQuery(this).attr('src')});
      jQuery.cookie("bgimg", "url("+ jQuery(this).attr('src') +")", { expires: 7});
   });

});

1 个答案:

答案 0 :(得分:0)

尝试删除引号,如:

jQuery("body").css("background-image": jQuery.cookie('bgimg'));

或更好地检查是否存在,如果没有创建cookie则应用:

if (jQuery.cookie('bgimg')) {
    jQuery("body").css("background-image": jQuery.cookie('bgimg'));
}
else {
    //set cookie
    jQuery.cookie("bgimg", "url({style_images_url}/backgrounds/bac1.png)", { expires: 7, path: '/'});
}

<强>更新::

$(document).ready(function(){

   $("body").css({ "background-image": $.cookie("bgimg") });

   $("li.bg > a").on('click', function(){
      $("body").css({"background-image": $(this).attr('src')});
      $.cookie("bgimg", "url("+ $(this).attr('src') +")", { expires: 7});
   });

});