我有一個音頻播放器,用戶可以點擊列表中歌曲旁邊的播放按鈕,然後播放器開始播放音頻。播放按鈕可以暫停按鈕,以便用戶暫停音頻。我遇到的問題是,我不能換一個自定義的從遊戲中走出的屬性(數據機動作)暫停一旦點擊會發生:jQuery改變自定義attritbute
的jQuery:
var playerInit;
$('.btn-control').live("click", function() {
var $action, $song_id, self;
self = $(this);
$action = self.attr('data-player-action');
$song_id = self.parents("tr").attr('id');
$(document.body).data('song-id', $song_id);
playerInit($action, self);
return false;
});
playerInit = function(action, elem) {
var jw_content, playerData, self;
self = $(elem);
$('.tracks tr td').not(self.parent()).removeClass('currentlyPlaying');
switch (action) {
case "play":
self.removeClass('play').addClass('pause');
if (self.parent().hasClass('currentlyPlaying')) {
jwplayer().play(true);
} else {
self.parent().addClass('currentlyPlaying');
$('#player_area').slideDown('200');
$('#player_wrapper').show();
jw_content = jQuery.parseJSON(self.attr('data-player-feed'));
playerData = {
'streamer': jw_content.Location,
'file': jw_content.Resource
};
jwplayer().load(playerData).play(true);
}
break;
case "pause":
self.removeClass('pause').addClass('play');
jwplayer().pause();
break;
case "playAlbum":
jwplayer().play(true);
}
return jwplayer().onComplete(function() {
var $reloadPlayer;
$(document.body).data('song-id', null);
self.parentsUntil('.tracks').find('.pause').hide();
self.parentsUntil('.tracks').find('.play').show();
self.parent().removeClass('currentlyPlaying');
return $reloadPlayer = true;
});
};
HTML:
<a href=\"#\" class=\"btn-control play\" data-player-action='play' data-artist-id='" + data["Artist"]["MnetId"] + "' data-album-id='" + data["MnetId"] + "' data-player-feed='" + x["SampleLocations"].first.to_json + "' data-player-position='0'></a>
任何幫助非常感謝!
你在哪裏試圖更新'data-player-action'attr?我沒有在你的代碼中看到它。 – BNL
爲什麼你的'href'和'class'屬性逃脫了?如果這是服務器端代碼,那麼向我們展示該行在輸出中呈現將會更有幫助。 – Dennis