2016-07-14 4 views
1

mit dieser Funktion habe ich mehrere Objekte zu temporären Array hinzufügen versucht., wie ein Array passieren in Jquery funktionieren jaudio

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: [] 
 
    }); 
 
}

Antwort

0

Sie benötigen ein Array von Objekten nicht um eine Zeichenfolge zu übergeben. Wie die Probe unter

$("#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", 
    }] 
}); 

So Ihre Temp-Variable so etwas wie

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

ändern und es dann in dem Array verwenden

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

auf die aktualisierte Frage basiert, können Sie ändern Ihre js Funktion zu so etwas wie diese

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 
    }); 
} 
+0

ja, ich habe es versucht. Es funktioniert nur für ein einziges Objekt. Aber ich muss mehr als ein Objekt gleichzeitig hinzufügen. Ich erstelle eine Funktion dafür. Der obige Code war Teil dieser Funktion. wenn die Funktion aufgerufen wird ich möchte es Daten zu Temp Array nach dem aktuellen Objekt hinzufügen, indem es vorherige Objekte zu halten. –

+0

@UdaraSuranga Schreiben Sie die ganze Funktion. –

+0

ich bearbeiten gerade den Code mit ganzer Funktion. –

Verwandte Themen