Как работать с плагином Jplayer (Jquery) на разных страницах?
Всем привет! Только начинаю постигать вершину Jquery и использую его для создания музыкального веб-приложения. Для проигрывания музыки использую знаменитый плагин Jplayer. С созданием одной странички проблем не возникло, но когда решил разбить блоки с музыкой на популярное и последнее, то появилась одна маленькая, но очень неприятная и крайне досадная проблема. При переходе с блока Popular на блок Last с помощью Ajax подгружается скрипт, где обнуляется значения предыдущего блока с музыкой и подгружается новый. Скрипты полностью идентичные, просто в каждом из них подгружается музыка из разных файлов, но если в первом случае все работает как надо, то во втором музыка начинает играть только после повторного нажатия на ссылку. Несмотря на то, что и в первом и во втором случае используется один скрипт jplayer, в котором настройках стоит автоматически проигрывать музыку после нажатия на ссылку. Надеюсь, что корректно объяснил суть проблемы и благодарен всем, кто дочитал до конца. При надобности могу показать код. Спасибо!
Алексей Уколов: вот скрипт, который подгружает плеер:
$(document).ready(function(){
var data = {};
$.ajax({
url:'getPopular.json',
dataType:'json',
cache: false,
success:showImages
});
$.ajaxSetup({cache: false});
function showImages(val) {
noskov-kirill: где append и пустые "" добавляются обложки. Скрипт player.js подгружат Jplayer, а script-last.js код аналогичный этому, но только с другим файлом json
Вы пытаетесь сделать SPA по старинке, загружая кусочки HTML со скриптами. Это криво, и всегда будет работать криво. Загружайте с сервера данные в JSON, превращайте с помощью шаблонизатора в HTML, и количество проблем резко поползет вниз.
В данном случае, похоже, что Jplayer инициализируется дважды. Точнее сказать трудно, так как вы не привели минимально нерабочий код.
Спасибо, а не подкините ссылочки, где можно получить подробную информацию по этой теме? В ответе на первый комментарий привел код, а ниже остальной код из файла player.js. Может получится решить данный случай. Большое спасибо за помощь.
// Some options
var opt_play_first = false, // If true, will attempt to auto-play the default track on page loads. No effect on mobile devices, like iOS.
opt_auto_play = true, // If true, when a track is selected, it will auto-play.
opt_text_playing = "Сейчас играет:", // Text when playing
opt_text_selected = "Выбранный трек"; // Text when not playing
// A flag to capture the first track
var first_track = true;
// Change the time format
$.jPlayer.timeFormat.padMin = false;
$.jPlayer.timeFormat.padSec = false;
$.jPlayer.timeFormat.sepMin = " минут ";
$.jPlayer.timeFormat.sepSec = " секунд";
// Initialize the play state text
my_playState.text(opt_text_selected);