jPlayer javascript 事件触发器仅适用于第一首歌曲

jPlayer javascript event triggers only works on first song

在 application.js 中有这个……它们有效,但仅适用于第一首歌。

第一个是歌曲播放,第二个是5%(最终会是75%,算作歌曲播放)。

$(document).ready(function(){
    $("#jquery_jplayer_1").bind($.jPlayer.event.play, function(event) {
      $("#jquery_jplayer_1").unbind($.jPlayer.event.play) 
      var band = event.jPlayer.status.media.band;
      var song = event.jPlayer.status.media.song;
      $.get("/playlists/song_display?song=" + song + "&band=" + band);
    });

    $("#jquery_jplayer_1").bind($.jPlayer.event.timeupdate, function(event) {
      if (parseInt(event.jPlayer.status.currentPercentAbsolute) >= 5 ) {
        $("#jquery_jplayer_1").unbind($.jPlayer.event.timeupdate) 
        var band = event.jPlayer.status.media.band;
        var song = event.jPlayer.status.media.song;   
        $.get("/playlists/song_counter?song=" + song + "&band=" + band);
      }
    });
});

编辑:

感谢 Ivan,最终得到了这段代码:

$(document).ready(function(){
    $("#jquery_jplayer_1").bind($.jPlayer.event.play, function(event) {
        debugger
      var band = event.jPlayer.status.media.band;
      var song = event.jPlayer.status.media.song;
      $.get("/playlists/song_display?song=" + song + "&band=" + band);

      $("#jquery_jplayer_1").bind($.jPlayer.event.timeupdate, function(event) {
          if (parseInt(event.jPlayer.status.currentPercentAbsolute) >= 5 ) {
            debugger
            $("#jquery_jplayer_1").unbind($.jPlayer.event.timeupdate) 
            var band = event.jPlayer.status.media.band;
            var song = event.jPlayer.status.media.song;   
            $.get("/playlists/song_counter?song=" + song + "&band=" + band);
          }
       });
    });
});

看起来您正在使用元素 ID 选择元素

$("#jquery_jplayer_1").bind(...)

这将仅适用于匹配 id jquery_jplayer_1 的第一个元素。

如果您想将事件绑定到多个元素,您可以改用 class 选择器。

$(".jquery_jplayer").bind(...)