刷新页面(已损坏)时localStorage loadVote

时间:2014-12-12 18:19:40

标签: javascript jquery json local-storage addeventlistener

刷新页面时无法显示voteUp / Down,因为如果我执行voteUp / Down(+1或-1)并刷新页面,则再次返回voteUp / Down(0)。在过去,我使用的是JSON,但社区推荐不使用JSON。在这一刻,我拥有它。感谢。

    var voteUp = document.getElementById('vote-up');
var voteDown = document.getElementById('vote-down');

var handUp = once(function() {
    var total = Number(voteUp.innerHTML);
    total += 1;
    voteUp.innerHTML = total;
    saveVote();
});

voteUp.addEventListener('click', handUp);

var handDown = once(function() {
    var total = Number(voteDown.innerHTML);
    total -= 1;
    voteDown.innerHTML = total;
    saveVote();
});

voteDown.addEventListener('click', handDown);

function once(fn, context) {
    var result;

        return function() {
            if(fn) {
                result = fn.apply(context);
                fn = null;
            }
            return result;
        };
}

function saveVote() {
    var votes = voteUp, voteDown;
        localStorage.setItem('data', votes);
            console.log('saveVote');
}

function loadVote() {
    var votes = localStorage.getItem('data');
        if(!votes){
            return;
        }
            console.log(localStorage.getItem('data'));
}

loadVote();

2 个答案:

答案 0 :(得分:2)

var voteUp = document.getElementById('vote-up');

function handUp() {
   var total = Number(voteUp.innerHTML);
   total += 1;
   voteUp.innerHTML = total;
}

voteUp.addEventListener('click',handUp,false);

通过单击增加每个值。

答案 1 :(得分:1)

然而,=+运营商,there is+=运营商都没有。

  

+ =   增加任务。

另外,我非常确定typeof valundefined,因为它的值永远不会在方法的参数传递中定义。

undefined类型的变量当然不能包含一个数字值(它是NaN),因此错误信息是有意义的。< / p>