我遇到了一个大问题,没有多少时间来解决它。我正在创建我的第一个移动应用程序,用于搜索大学项目(不是基于真实属性) 我尝试使用不同的键不起作用,我没有得到基础知识。 基本上我有一个Jquery移动应用程序,其中有许多外部页面都有属性的详细信息,这些页面具有相同的ID但在不同的文档上,当用户单击按钮进行保存时,我希望页面的标题和URL是保存在本地存储中,并由称为我的收藏夹的第三页检索。我遇到的问题是,当我进入每个页面并单击“保存”时,它会覆盖已存在于本地存储中的内容,并且似乎每个页面都有自己的存储空间,因此我的收藏页面始终只有一个收藏夹(最新的)一),而不是每次我点击保存时附加的收藏列表。这是我的代码:
f = myfunc3(x0)
(两页都有相同的代码) 这是我在脚本文件中的功能:
$(document).on(“pagecreate”,function(argument){
<div data-role="header" id="samplePlacePage_hd">
<h4 id="hutRef">add#redHut456</h4>
</div>
<div data-role="main" id="samplePlacePage_cont">
<div id="image">
<a href="#"><img src="images/redhut.jpeg" height="200px" width="100%" alt="Hut"></a>
</div>
<div id="place_title">
<p id="hutHeading">Stunning Red Hut in Central Red Beach</p>
</div>
<div>
<h4 style="float: left;">Rent: $2950pw</h4>
<h4 style="float: right;">Deposit: 5500</h4>
</div>
})
请帮忙
由于
答案 0 :(得分:1)
另外两个注意事项:尚未添加检查收藏夹,并允许用户在您网站的页面上打开多个标签页 - 添加一个页面作为收藏夹不应干扰添加其他页面作为收藏。不要忘记,如果本地存储项不存在,请创建一个新的:)
基本上我建议检索本地存储,检查重复项,更新并保存回本地存储,所有这些都发生在单击处理程序,E.G。通过重新排列代码并添加几行:
$(document).on("pagecreate",function () {
document.getElementById('hutFav').onclick = function () {
var favoritesPlaces = localStorage.getItem("favorites");
var heading = document.getElementById('hutHeading').innerText;
var ref = document.getElementById('hutRef').innerText;
var refLink = ref.replace("add#","");
var newFav = {
title: heading,
link: refLink
};
favoritesPlaces = favoritesPlaces || '[]'; // string
favoritesPlaces = JSON.parse(favoritesPlaces); // array
if( !favoritesPlaces.some( fave => fave.link === refLink)) {
favoritesPlaces.push( newFav)
console.log(favoritesPlaces);
localStorage.setItem("favorites",JSON.stringify(favoritesPlaces));
}
else {
console.log("already a favorite");
}
}
})
(测试)
请注意,在任何网页上清除localStorage
都会清除网站上所有网页的内容。一旦清除,它在所有页面上清除,没有更多的收藏夹,任何页面都可以再次添加而不会重复。如果&#34;从收藏夹中移除此页面&#34;需要按钮,需要编写一个新功能。