Используйте кнопку JQuery Next для перехода к следующему клубу

У меня есть кнопка, которая при нажатии должна вызывать следующий клуб в DOM без обновления. Один раз работает для следующего клуба, но после этого не работает. Мне нужно как-то изменить идентификатор клуба на кнопке, чтобы API мог получать информацию о следующем клубе. Я не уверен, как лучше это сделать. Любые идеи?

 <div class = "container-fluid">
  <h1>Your Club</h1>
  <br>
    <div id = "club-info">
    <h2 class = "club-name"><%= @club.name %></h2>
    <br>
    <h2 class = "club-brand"><%= @club.brand %></h2>
    </div>
  <br>
  <button class = "next-club" data-id = "<%= @club.id %>">Next Club</button>
  <br>
  <br>
  <%= link_to "See all of your clubs", club_path %>
</div>

<script type = "text/javascript" charset = "utf-8">
  $(function() {
    $('.next-club').click(function() {
      var id = $(this).data("id");
      $('#club-info').html('')
      $.get('/clubs/' + id + '/next', function(data, status) {
        $('#club-info').append(`<h2>${data.name}</h2>` + 
          `<br>` + 
          `<h2>${data.brand}</h2>`);
      })
    }) 
  });
</script>
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

При успешном получении запроса вы можете добавить

$('.next-club').data('id', data.id);

Вышеупомянутое будет использовать JQuery .data для изменения отправленного идентификатора. (https://api.jquery.com/data/)

Это потрясающе. Спасибо!

btcline04 27.06.2018 20:14

Вам нужно назначить новый идентификатор кнопке после успеха и убедиться, что этот атрибут данных кнопки динамически обновляется.

Проверьте часть $that.data, где назначается новый идентификатор данных. если вы используете friendly-id, сделайте это.

$(document).on('click', '.next-club', function(e) {
   e.preventDefault();
   var id = $(this).data("id");
   var $that = $(this);         

   $.get('/clubs/' + id + '/next', function(data, status) {
        if (status == 'success'){
            $('#club-info').html('')
            $('#club-info').append(`<h2>${data.name}</h2>` + 
                   `<br>` + 
                   `<h2>${data.brand}</h2>`);
            $that.data('id', data.id); #assign new id
        }
   })
}

Другие вопросы по теме