1

我试图说服 Jplayer 运行外部脚本(通过jQuery.get.ajax来自 jQuery)来填充当前歌曲信息所在的播放器以外的不同区域..(希望这是有道理的......)我的问题一旦将信息加载到 div,它将不再播放音乐。如果我success:从 AJAX 调用中删除 ,或者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/

谢谢你的帮助!

4

1 回答 1

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()));
});

现在一切都在播放并正确加载

于 2011-12-07T01:05:33.917 回答