javascript - 如何将数组传递给 jquery jaudio 中的函数

标签 javascript jquery arrays

通过使用此函数,我尝试将多个对象添加到临时数组中。

var temp = [];

function addSong(id) {
    var button = $('#' + id + ''); // Button that triggered the modal
    var file = button.data('file'); // Extract info from data-* attributes
    var thumb = button.data('thumb'); // Extract info from data-* attributes
    var trackName = button.data('track_name'); // Extract info from data-* attributes
    var trackArtist = button.data('track_artist'); // Extract info from data-* attributes
    var trackAlbum = button.data('track_album'); // Extract info from data-* attributes

    temp += "{file:'" + file + "',thumb:'" + thumb + "',trackName:'" +
        trackName + "',trackArtist:'" + trackArtist + "',trackAlbum:'" + trackAlbum + "'},";

    $("#player").jAudio({
        playlist: []
    });
}

最佳答案

您需要传递对象数组而不是字符串。就像下面的示例

$("#player").jAudio({
    playlist: [{
        file: "resources/tracks/01.mp3",
        thumb: "resources/thumbs/01.jpg",
        trackName: "Track 1",
        trackArtist: "Artist 1",
        trackAlbum: "Album",
    }, {
        file: "resources/tracks/02.mp3",
        thumb: "resources/thumbs/02.jpg",
        trackName: "Track 2",
        trackArtist: "Artist 2",
        trackAlbum: "Album",
    }]
});

因此将您的临时变量更改为类似

var temp =  {
     file: file,
     thumb: thumb,
     trackName: trackName,
     trackArtist: trackArtist,
     trackAlbum: trackAlbum
 };

然后在数组中使用它

  $("#player").jAudio({
        playlist: [temp]
  });

根据更新的问题,您可以将您的js函数修改为这样的

 var temp = [];

 function addSong(id) {

     var button = $('#' + id + ''); // Button that triggered the modal
     var file = button.data('file'); // Extract info from data-* attributes
     var thumb = button.data('thumb'); // Extract info from data-* attributes
     var trackName = button.data('track_name'); // Extract info from data-* attributes
     var trackArtist = button.data('track_artist'); // Extract info from data-* attributes
     var trackAlbum = button.data('track_album'); // Extract info from data-* attributes

     var tempObj = {
         file: file,
         thumb: thumb,
         trackName: trackName,
         trackArtist: trackArtist,
         trackAlbum: trackAlbum
     };

     temp.push(tempObj);

     $("#player").jAudio({
         playlist: temp
     });
 }

关于javascript - 如何将数组传递给 jquery jaudio 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38365211/

相关文章:

javascript - 使用reduce方法处理数组元素

javascript - wiris 插件在 tinymce 中运行方程保存

javascript - 以 Javascript/jQuery 表示的 PHP 表单 : One to many UI relationships,?

jQuery 如何为我的代码添加动画?

Javascript:使用for循环将数组插入数组

arrays - 删除重复字符

javascript - JavaScript 中条件中的匿名函数

javascript - jQuery 1.4.2 功能损坏?

ruby - 如何在 ruby​​ 中通过哈希值在哈希数组中进行搜索?

javascript - ng-repeat 基于点击的数据切换