Ich benutze jPlayer zum Abspielen von Audiodateien. Wenn ich den Player für Inhalte verwende, die privilegiert sind, wenn die Seite geladen wird, funktioniert es ohne Probleme.jplayer + Ajax eingefügt Inhalt
Ich brauche es auch für HTML, die von AJAX eingefügt wird. Hier klappt es nicht. Es scheint, dass das bereit Ereignis nicht ausgelöst wird.
Ich schrieb eine Funktion, die von click()
ausgeführt werden kann. Auf diese Weise kann ich manuell klicken, wenn der HTML-Code, der den Player enthält, vollständig geladen ist. Hier habe ich das gleiche Problem: Das Ready-Event wird nicht ausgelöst.
Dies ist meine Funktion, die Geldbusse nicht Ajax eingesetzt Spieler funktioniert:
$('.jp-jplayer').each(function() {
var src = $(this).attr('data-src');
var id = $(this).attr('id');
var post_id = $(this).attr('data-id');
alert('beg');
$('#' + id).jPlayer({
ready: function() {
$(this).jPlayer('setMedia', {
mp3: "/prelisten/_lofidl/change_of_heart_full_lofi.mp3",
});
alert('#' + id);
},
swfPath: "/wp-content/themes/Dark_3Chemical_DE_mit_Pagenavi/Dark_3Chemical_DE/audioplayer/js",
//////ERRRROOOOOR
solution: "flash, html",
supplied: "mp3",
wmode: "window",
cssSelectorAncestor: "#jp_container_" + post_id,
play: function() { // To avoid both jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
repeat: function (event) { // Override the default jPlayer repeat event handler
if(event.jPlayer.options.loop) {
$(this).unbind(".jPlayerRepeat").unbind(".jPlayerNext");
$(this).bind($.jPlayer.event.ended + ".jPlayer.jPlayerRepeat", function() {
$(this).jPlayer("play");
debug($(this));
});
} else {
$(this).unbind(".jPlayerRepeat").unbind(".jPlayerNext");
$(this).bind($.jPlayer.event.ended + ".jPlayer.jPlayerNext", function() {
//$("#jquery_jplayer_4858").jPlayer("play", 0);
});
}
},
});
$("#jplayer_inspector").jPlayerInspector({
jPlayer: $('#' + id)
});
});
Derzeit ich die src manuell alle möglichen Fehler hier auszuschließen bin Einstellung.
Wie kann ich diese Funktion auf AJAX eingefügt Inhalt ausführen?
EDIT:
Dies ist der Code, der die HTML einschließlich der Spieler holt:
$.get('/query_posts.php', {
paged: _page,
cats: cols
}, function(data) {
$('#search-results').append(data).fadeIn(300);
//create_player_scripts();
//set_players();
$('#search-results').find('input[name="cartLink"]').each(function() {
$(this).val($(this).closest('.post1').find('.post_headl a').attr('href'));
});
});
Wann laufen Sie das? Nach jeder AJAX-Anfrage? Wie sieht der AJAX-Code aus? – jimw
Ja. Nach der Ajax-Anfrage. Derzeit manuell, um sicher zu sein, dass es definitiv nach der Anfrage ist. Mein Ajax-Code befindet sich oben in der Bearbeitung. – user998163
Ich bin mir sicher, dass Sie dies bereits überprüft haben, aber hat der HTML-Code, den Sie anhängen, definitiv die Elemente, die Sie erwarten? I.e. Sieht das eingefügte HTML genau so aus wie das HTML eines Nicht-AJAX-Players, abgesehen von verschiedenen IDs? – jimw