javascript - 如何在 html cordova android 应用程序中创建 'add to favourite' 功能?

标签 javascript html cordova phonegap-build

我正在使用phonegap 创建一个歌曲书应用程序。在index.html中,我在li标签中有歌曲列表。当我点击某首特定歌曲时,它会在另一个本地 html 文件中打开该特定歌曲的歌词。

我想添加一个“收藏夹按钮”。单击“收藏夹”按钮后,我希望将该特定歌曲添加到收藏夹列表中。当用户打开最喜欢的页面时,它应该显示他们最喜欢的歌曲的列表,当他们单击最喜欢的页面中的歌曲时,它应该打开该特定歌曲的歌词 html 页面。

我是 HTML 的中级用户和 JavaScript 的初学者。

请帮我完成这个任务,

提前致谢。

最佳答案

因为这是一个“相当广泛”的问题,所以很难找到答案,但我建议创建一个数组,将最喜欢的歌曲存储到其中,然后当您打开 favorites.html 页面时,它获取数组,并将信息写入页面。

例如当在歌曲页面上单击收藏夹按钮时,它会写入:歌曲名称(exampleSong)、歌曲页面(exampleSong.html)以及您需要的其他随机详细信息,然后转到 favorites.html 应该获取一个文档就绪函数,该函数读取数组并写入页面。

抱歉,如果我帮不了那么多,但这是一个非常广泛的问题。

如果您需要帮助,这里是我创建的一些示例

(这会获取收藏夹数组,并将其打印出来)

var favorites = [
  ["ExampleSong", "exampleSong.html"],
  ["LorddirtCoolSong", "LorddirtCoolSong.html"],
  ["StackOverflowIsAwesome", "StackOverflowIsAwesome.html"]
];

var containerA = document.getElementById("favoritesA");
for (var i in favorites) 
{
   
   for (var j in favorites[i]) 
     {
      var newElement = document.createElement("p");
      newElement.innerHTML = favorites[i][j];
      containerA.appendChild(newElement);
     }
}

var containerB = document.getElementById("favoritesB");
for (var i in favorites) 
{
   var newElement = document.createElement("p");
      newElement.innerHTML = "<h4>Favorite Song " + i + "</h4>";
      containerB.appendChild(newElement);
   for (var j in favorites[i]) 
     {
      var newElement = document.createElement("p");
      newElement.innerHTML = favorites[i][j];
      containerB.appendChild(newElement);
     }
}

var containerC = document.getElementById("favoritesC");
for (var i in favorites) 
{
   var newElement = document.createElement("p");
      newElement.innerHTML = "<h4>Favorite Song " + i + "</h4>";
      containerC.appendChild(newElement);
   for (var j in favorites[i]) 
     {
     if(j == 1){
     }else{
      var newElement = document.createElement("p");
      newElement.innerHTML = "<a href='" + favorites[i][1] + "'>" + favorites[i][j] + "</a>";
      containerC.appendChild(newElement);
      }
     }
}
.favoriteSongs{
border: 2px solid black;
display: block;
}
<!--
EXAMPLE 1A: Print out the Favorites
-->
<hr>
<h2>Example 1A: Print favorites out</h2>
<div id='favoritesA' class='favorites'>
</div>
<hr>
<!--
EXAMPLE 1B: Now you know the order of the songs!
-->
<h2>Example 1B: Print favorites out with formatting</h2>
<div id='favoritesB' class='favorites'>
</div>
<hr>
<!--
EXAMPLE 1C: Link them
-->
<h2>Example 1C: Link to the page</h2>
<div id='favoritesC' class='favorites'>
</div>
<hr>

非常不言自明,它获取最喜欢的歌曲数组,以及名称和 url,获取容器,即 <div id='favorites'></div>并将内容写入其中。

(哦等等,我刚刚注意到我花了这么长时间在这上面,哈哈哈。) 示例:

1A:我所做的就是搜索数组收藏夹,并打印出数组中的每一个内容。简单。

1B:略有不同,和上一个一样,不过我加了一个<h4>数组中每个数组之前的标记。 (是的,数组里面的数组很令人困惑)。

1C:不是打印出数组中的两个数组,而是打印出数组中的第一个东西,并添加一个指向数组中的第二个东西的链接。已经很困惑了吗?只要读一遍你就会明白。

关于javascript - 如何在 html cordova android 应用程序中创建 'add to favourite' 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51257840/

相关文章:

javascript - Magento 站点因 IE 而变慢并出现脚本错误

javascript - AngularJS md-tabs 的更改索引根本没有效果

javascript - Angular 自定义可折叠指令在包裹 ng-repeat 内容时失败

html - 图像链接不起作用

mobile - 移动浏览器的工具提示

javascript - 为什么我必须将所有脚本都放在 jquery mobile 中的 index.html 中

javascript - 使用短路评估进行对象解构

php - 如何对表单元素进行分组

ios - 无法启动 Cordova iOS 模拟器 - Mac 上的 PhoneGap

cordova - 如何通过 Facebook 登录和 Passport.js 使用 PhoneGap