2012-07-12 129 views
0

我有以下问题,我正在使用jquery mobile来构建一个webapp。 在webapp(index.html)的启动页面上,我显示了一个事件列表。 当用户点击一个事件时,(eventsDetail.html)被加载。在这个页面上,用户可以选择通过'点击joinContest'按钮来参加比赛。如何存储id本地存储每次我点击按钮

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

文件: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') 
    } 
}); 

文件: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);  
} 

回答

0

我认为每一个你做的按钮,点击时,要覆盖“contestId”,如果你想保持被点击的项目列表,你可能想要做

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

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

希望这可以帮助〜

+0

这个工作,但我怎么能推到一个数组? – pum 2012-07-12 20:37:21

+0

你可以stringify数组... http://stackoverflow.com/questions/3357553/how-to-store-an-array-in-localstorage – 2012-07-12 20:46:52

+0

谢谢你真的帮助,让它现在工作 – pum 2012-07-14 13:36:42