Я пытался выяснить, как использовать ajax в этой простой функции.JQuery AJAX - Обновить пробел при нажатии этой кнопки
У меня есть диапазон, отображающий количество песен, которые пользователь имеет в своем плейлисте. Это просто показывает, сколько значений существует внутри ключа localStorage.
<span id="count-songs-span">
<script>
var countSongs = JSON.parse(localStorage.playlist).length;
document.write(countSongs);
</script>
</span>
Мы используем jPlayer, и у нас есть настроенный список воспроизведения. Когда вы удаляете песню из списка воспроизведения (нажав кнопку удаления), мы хотели бы обновить содержимое этого div, «count-songs-span», с новым счетчиком. Пока что он работает только при обновлении страницы, но мы хотим обновить ее с помощью ajax.
Мы добавили событие щелчка для кнопки Удалить здесь:
$('.jp-playlist').on('click', '.jp-playlist-item-remove', function(){
window.setTimeout(updatePlaylist, 500);
});
updatePlaylist() выглядит следующим образом:
function updatePlaylist(){
playlist = myPlaylist.playlist;
storage.set('playlist', playlist);
}
Событие щелчок сохраняет список в LocalStorage, и это нормально , Но до этого мы хотели бы обновить переменную countSongs с помощью ajax.
У меня есть этот фрагмент с другого сайта, и я попытался адаптировать его к своему сайту, но я просто не могу заставить его работать. Это не правильный код для моего сайта.
$.ajax({
type : "get",
dataType : "json",
url : ajax_object.ajaxurl,
data : {action: "get_media", id : id},
success: function(obj) {
if(obj.length == 1){
player.add(obj[0], true);
updatePlaylist();
}else if(obj.length > 1){
player.setPlaylist(obj);
player.play(0);
updatePlaylist();
}
}
});
Может ли кто-нибудь помочь мне использовать ajax для обновления «count-songs-span»?
Большое спасибо, если вы можете помочь.
UPDATE:
Вот демо, что хранится.
Способ хранения данных списка воспроизведения:
function updatePlaylist(){
playlist = myPlaylist.playlist;
storage.set('playlist', playlist);
}
Везде мы должны хранить информацию списка воспроизведения, мы называем этот метод - updatePlaylist()
Это пример того, что хранится:
[{"title":"Mauvais Temps","artist":"Right Beat Radio","mp3":"/mp3s/MauvaisTemps.mp3"},{"title":"Line Steppers","artist":"Right Beat Radio","mp3":"/mp3s/LineSteppers.mp3"},{"title":"Try My Best","artist":"Right Beat Radio","mp3":"/mp3s/TryMyBest.mp3"},{"title":"San Ignacio","artist":"Right Beat Radio","mp3":"/mp3s/SanIgnacio.mp3"}]
Так что, когда мы хотим, чтобы подсчитать количество песен в списке воспроизведения, мы используем этот (ключ LocalStorage называется «плейлист»:
var countSongs = JSON.parse(localStorage.playlist).length;
document.write(countSongs);
UPDATE # 2:
Скриншот:
https://rightbeatradio.com/wp-content/uploads/2015/09/Screen-Shot-2015-09-07-at-9.13.34-AM.png
Надеюсь, этот скриншот поможет. Вы можете увидеть список воспроизведения там, и выше этого, вы увидите количество песен, которые в данный момент входят в список (7 песен).
Рядом с каждой песней в списке есть кнопка удаления (x). Эта кнопка позволяет пользователю удалить песню из списка.
При нажатии на эту кнопку, эти функции огня:
//Remove Item from Playlist
$('.jp-playlist').on('click', '.jp-playlist-item-remove', function(){
window.setTimeout(updatePlaylist, 500);
});
// update playlist
function updatePlaylist(){
playlist = myPlaylist.playlist;
storage.set('playlist', playlist);
}
Где-то там, мы хотели бы также подсчитать количество элементов в LocalStorage, ключ «список воспроизведения», а также обновлять счетчик с помощью Аякс.
Вот HTML от диапазона, который подсчитывает количество песен в плейлисте:
<span id="count-songs-span">
<script>
var countSongs = JSON.parse(localStorage.playlist).length;
document.write(countSongs);
</script>
</span>
Единственный раз, когда скрипт вызывается, когда мы обновляем страницу. Нам бы хотелось, чтобы этот скрипт countSongs вызывался при нажатии кнопки удаления и обновлял счетчик в этом диапазоне с помощью ajax.
Вы обновляете данные локального хранилища? – Rayon
Да, в случае нажатия кнопки удаления «jp-playlist-item-remove» мы обновляем localStorage. Я добавил метод хранения выше. – anthonyCam
Можете ли вы предоставить небольшую демонстрацию с фиктивными данными? – Rayon