我试图说服Jplayer运行外部脚本(通过jQuery中的.get
或.ajax
)以使用当前歌曲信息填充当前播放器以外的其他区域。 (希望这是有道理的......)我遇到的问题是,一旦它将信息加载到div,它将不再播放音乐。如果我从AJAX调用中移除success:
,或者在function(data){}
调用中移除.get
它(显然)拉动脚本但不对其执行任何操作,并播放音乐...我告诉它做某事时,音乐不再加载......
这是我添加到播放功能...
$.ajax({
url: "add_song.php",
success: function(html){
$("#hidden").append(html);
}
});
所以它看起来像:
play: function(time) {
time = (typeof time === "number") ? time : NaN; // Remove jQuery event from click handler
if(this.status.srcSet) {
if(this.html.active) {
this._html_play(time);
} else if(this.flash.active) {
this._flash_play(time);
}
} else {
this._urlNotSetError("play");
}
/* branning */
$(".slide_new").addClass("slide_old");
$(".slide_new").removeClass("slide_new");
/* add new slide */
$.ajax({
url: "add_song.php",
success: function(html){
$("#hidden").append(html);
}
});
/* end branning edits */
},
我尝试过移动它,但始终使用.ajax
和.get
获得相同的结果。有没有更简单的方法来实现这一点,或者我犯了一些明显的错误?
以下是我们目前拥有的开发网站: http://www.branninggroup.com/backbeat/media_player/
感谢您的帮助!
答案 0 :(得分:2)
我不确定回答你自己的问题的协议是什么,但我想出了一个解决方案并希望发布它。
我删除了上面的所有内容,并将以下内容添加到jplayer中:
$("#jquery_jplayer_1").bind($.jPlayer.event.play, function(event) {
$("li.new").removeClass("new");
$(".slide_new").addClass("slide_old");
$(".slide_new").removeClass("slide_new");
$("ul.slider").prepend('<li class="new"></li>');
$("li.new").load('add_song.php?img='+escape($('#jp_poster_0').attr("src"))+'&name='+escape($('a.jp-playlist-current').html()));
});
现在一切正在播放并正确加载