刷新页面时无法显示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();
答案 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
val
是undefined
,因为它的值永远不会在方法的参数传递中定义。
undefined
类型的变量当然不能包含一个数字值(它是NaN
),因此错误信息是有意义的。< / p>