每次点击按钮时如何存储id localstorage

时间:2012-07-12 18:00:36

标签: jquery mobile local-storage

我有以下问题,我使用jquery mobile来构建一个webapp。 在webapp(index.html)的启动页面上,我显示了一个事件列表。 当用户点击某个事件时,(eventsDetail.html)会被加载。在此页面上,用户可以选择通过“单击joinContest按钮”加入比赛。

问题: 当我多次单击joinContest按钮并导航回index.html并单击.btn-showContests按钮时,只存储了一个id(这是我最后点击的比赛的id) 如何存储我点击的竞赛的所有id,以便当我导航回index.html并单击.btn-showContests时,它会获得我点击过的所有id?

file: eventdetails.js

$('.btn-joinContest').live('click', function(e){
    if (Modernizr.localstorage) {
        var id = getUrlVars()["id"];

        localStorage.setItem("contestId", id);
    } else {
        console.log('browser doesnt support localstorage')
    }   
});

file: eventlist.js

注意:当我单击按钮.btn-showContests时,它会执行此功能。

function showContests(){
    var contests = localStorage.getItem("contestId");
    if(contests == null) {
        console.log('Nothing in store');
    }
    else if (contests.length === 0) {
        console.log('Store contains empty value');
    }          
    console.log(contests.length);       
}

1 个答案:

答案 0 :(得分:0)

我认为每次点击按钮时,你都会覆盖“contestId”,如果你想保留点击项目的列表,你可能想要这样做

var currentlist = localStorage.getItem("contestId");
currentlist = currentlist +" "+ id;
localStorage.setItem("contestId", currentlist);

或更好的风格..将其存储在数组中。

希望这有帮助〜