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

时间:2017-05-05 18:05:00

标签: javascript ruby-on-rails jplayer

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

1 个答案:

答案 0 :(得分:1)

看起来您正在使用元素ID

选择元素
$("#jquery_jplayer_1").bind(...)

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

如果要将事件绑定到多个元素,则可以使用类选择器。

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