如何使用jQuery在不刷新页面的情况下更新cookie值?

如何使用jQuery在不刷新页面的情况下更新cookie值?,jquery,session-cookies,Jquery,Session Cookies,我目前正在使用jQuery Cookies插件,根据查看者单击页面的哪一侧,将应用cookie: <div id="leftClick">Click Me</div> <div id="rightClick">Click Me</div> 点击我 点击我 问题是,一旦存储了cookie,不刷新它就不会更新。因此,如果查看器在刷新页面之前单击右元素,然后在左元素之后,它仍然会报告right,尽管cookie已被u left覆盖,因为页面尚未刷新。

我目前正在使用jQuery Cookies插件,根据查看者单击页面的哪一侧,将应用cookie:

<div id="leftClick">Click Me</div>
<div id="rightClick">Click Me</div>
点击我
点击我
问题是,一旦存储了cookie,不刷新它就不会更新。因此,如果查看器在刷新页面之前单击右元素,然后在左元素之后,它仍然会报告right,尽管cookie已被u left覆盖,因为页面尚未刷新。有没有一种方法可以在不刷新页面的情况下实时读取cookie

<script type="text/javascript">
    var readCookie = $.cookie('whichSide');
    $(document).ready(function() {
       $('#leftClick').click(function(){
        $.cookie('whichSide', 'left_');
      }); 
    $('#rightClick').click(function(){
        $.cookie('whichSide', 'right_');
      });
    $('#login').click(function(){
        _gaq.push(['_trackEvent', 'viewerChose', readCookie+'side']);
    });   
  });  
​</script>  

var readCookie=$.cookie('whichSide');
$(文档).ready(函数(){
$('#leftClick')。单击(函数(){
$.cookie('whichSide','left_');
}); 
$(“#右键单击”)。单击(函数(){
$.cookie('whichSide','right_');
});
$('#login')。单击(函数(){
_gaq.push([''u trackEvent','viewerChose',readCookie+'side']);
});   
});  
​  

这是因为您将cookie的值存储在
readCookie
变量中。当您更新cookie时,此变量不会自动更新,这就是为什么您在引用它时会得到旧值的原因

你可能想要这样的东西:

$('#login').click(function(){
    _gaq.push(['_trackEvent', 'viewerChose', $.cookie('whichSide')+'side']);
});

您只读取readCookie值一次,然后在.click函数中使用该值。尝试在单击事件中读取它,以便使用最新的值:

$('#login').click(function(){
    var readCookie = $.cookie('whichSide');
    _gaq.push(['_trackEvent', 'viewerChose', readCookie+'side']);
}); 

当您自己缓存cookie的值时,请从代码中删除此项

var readCookie = $.cookie('whichSide');
将您的代码更改为此,每次需要时,您都会在
$(“#login”)中获得cookie值的新副本。单击()
处理程序,而不是引用以前保存的值:

<script type="text/javascript">
    $(document).ready(function() {
       $('#leftClick').click(function(){
        $.cookie('whichSide', 'left_');
      }); 
    $('#rightClick').click(function(){
        $.cookie('whichSide', 'right_');
      });
    $('#login').click(function(){
        _gaq.push(['_trackEvent', 'viewerChose', $.cookie('whichSide')+'side']);
    });   
  });  
​</script>

$(文档).ready(函数(){
$('#leftClick')。单击(函数(){
$.cookie('whichSide','left_');
}); 
$(“#右键单击”)。单击(函数(){
$.cookie('whichSide','right_');
});
$('#login')。单击(函数(){
_gaq.push([''u trackEvent','viewerChose',$.cookie('whichSide')+'side']);
});   
});  
​