jquery为每个链接保存多个cookie

jquery为每个链接保存多个cookie,jquery,cookies,Jquery,Cookies,我在页面中有很多链接,请单击每个addClass“投票”到此链接。然后将效果保存到cookie中。因此,下次刷新web浏览器时,它将保存addClass事件 我的代码在这里,但它将只保存一个cookie。我的意思是如果我点击了链接1,链接2。它总是记得最后一次点击。刷新web浏览器。仅链接2添加类已投票链接1错过了添加类事件。那么,如何为每个链接保存多个cookie呢?谢谢 <script type="text/javascript" src="script/jquery.js">&

我在页面中有很多链接,请单击每个
addClass
“投票”到此链接。然后将效果保存到cookie中。因此,下次刷新web浏览器时,它将保存
addClass
事件

我的代码在这里,但它将只保存一个cookie。我的意思是如果我点击了链接1,链接2。它总是记得最后一次点击。刷新web浏览器。仅
链接2
添加类
已投票<代码>链接1错过了
添加类
事件。那么,如何为每个链接保存多个cookie呢?谢谢

<script type="text/javascript" src="script/jquery.js"></script>
<script type="text/javascript" src="script/cookie.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  var cookieName = 'up';
  var cookieOptions = {expires: 7, path: '/'};  

  $("#" + $.cookie(cookieName)).addClass('voted');

  $(".up").live('click',function(e){
    e.preventDefault();    
    $.cookie(cookieName, $(this).attr("id"), cookieOptions);
    // save cookie depends on each link id. 
    $("#" + $.cookie(cookieName)).addClass('voted');
  });
});
</script>

<a href="javascript:void(0)" id="m12345678" class="up">link 1</a>
<a href="javascript:void(0)" id="m12345679" class="up">link 2</a>
<a href="javascript:void(0)" id="m12345680" class="up">link 3</a>

$(文档).ready(函数(){
var cookieName='up';
var cookieOptions={expires:7,路径:'/'};
$(“#”+$.cookie(cookieName)).addClass('voated');
$(“.up”).live('click',函数(e){
e、 预防默认值();
$.cookie(cookieName,$(this.attr(“id”),cookieOptions);
//保存cookie取决于每个链接id。
$(“#”+$.cookie(cookieName)).addClass('voated');
});
});

在中上载我的代码:

更改cookie名称可能会解决此问题

var cn = cookieName + $(this).attr("id");
$.cookie(cn, cookieOptions);
// save cookie depends on each link id. 
$("#" + $.cookie(cn)).addClass('voted');
更新:此更新用于回答您的更新问题:

function checkIfAllClicked(){
    var flag = false;
    $(".up").each(function(){
        var f = $(this).data("isClicked");
        if(f == true){
            flag = true;
        }
        else{
            flag = false;
        }
    });
    if(flag){
        // refresh the page or call any-other function you want
        document.location.href = "any-url";
    }
}

$(".up").live('click',function(e){
    e.preventDefault();    
    $.cookie(cookieName, $(this).attr("id"), cookieOptions);
    // save cookie depends on each link id. 
    $("#" + $.cookie(cookieName)).addClass('voted');
    $(this).data("isClicked", true);
    checkIfAllClicked();
});
解决了。在此引用:

向所有人分享答案

$(document).ready( function() {
    $(function() {
        var cookieName = 'up_';

        $('.up').each(function() {
            var id = $(this).attr('id'), cookie = cookieName + id;

            if ($.cookie(cookie) !== 'ture') {
                $(this).addClass('voted');
            }
        }).live('click', function(e) {
            e.preventDefault();
            $.cookie(cookieName + $(this).attr('id'), true);
        });
    });
});

你在使用哪个
cookie.js
u?请提供link@diEcho,
https://github.com/carhartl/jquery-cookie
谢谢,那么
$(“#”+$.cookie(cn)).addClass('voated')
菜单中单击
?js变量无法从
单击中传出。请在
中上载我的代码http://jsfiddle.net/RQP4T/show/
。我只想记住所有点击的
行为。如果我单击了所有3个链接,然后刷新web浏览器,它将记住addClass中的3个链接。如果你擅长,你能为我重新编写一个工作代码吗?谢谢。@Giberno如果答案已满,请投票,如果问题解决,请接受,please@king.net,
未捕获引用错误:未定义cookieName
请参阅
http://jsfiddle.net/RQP4T/1/show/
OM!!!我只是把主代码放在答案里!你应该完成它!写这行:`var cookieName='up';var cookieOptions={expires:7,路径:'/'}`