удалить элементы из ajax ответа onclick - PullRequest
0 голосов
/ 04 августа 2020

Нажатие кнопки «Загрузить больше» увеличит число, а затем передаст значение в «start-index» json url. Затем он добавит новые элементы под текущими.

При навигации / щелчке по домашней странице и ярлыкам, он должен очистить текущие элементы перед загрузкой новых элементов.

Мое решение - добавить еще один щелчок для сброса приращения числа и удаления текущих элементов.

$("#label-list a").on("click", function() {
  $("#count").val("1");
  $('.items').remove();
});

Кажется, работает, но я обнаружил одну проблему.

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

На самом деле это не проблема с функцией щелчка, это то, как она должна себя вести, мне просто нужно другое решение ... Любая помощь будет принята с благодарностью. спасибо!

var max = 4;
var winloc = window.location;
baseUrl = 'https://mailliw88.blogspot.com/feeds/posts/';

$("#add").on("click", function() {
  start = (parseInt($('#count').val()) + max);
  $("#count").val(start);
  loadmore(start);
})
$("#label-list a").on("click", function() {
  $("#count").val("1");
  $('.items').remove();
});

$(window).on('hashchange', loadmore = function(more) {
  if (winloc.hash === "#home") {
    url = `${baseUrl}default?start-index=${more}&max-results=${max}&alt=json-in-script`;
  } else if (winloc.hash.indexOf("#label") > -1) {
    label = winloc.hash.split("/")[1];
    url = `${baseUrl}default/-/${label}?start-index=${more}&max-results=${max}&alt=json-in-script`;
  } else {
    url = `${baseUrl}default?start-index=${more}&max-results=${max}&alt=json-in-script`;
  }

  $.ajax({
    url: url,
    type: 'get',
    dataType: "jsonp",
    success: function(data) {
      if (data.feed.entry) {
        datas = data.feed.entry;
        var entry = data.feed.entry;
        for (var i = 0; i < entry.length; i++) {
          postTitle = entry[i].title.$t;
          items = '<div class="items"><h2>' + postTitle + '</h2></div>';
          $("#showlists").append(items)
        }
      }
      if (data.feed.entry.length !== max){
        $("#add").hide();
      } else if (window.location.href) {
        $("#add").show();
      }
    }
  });
}).trigger('hashchange')
 <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  <ul id='label-list'>
    <li><a href="#home">Home</a></li>
    <li><a href="#label/label2">label2</a></li>
    <li><a href="#label/label3">label3</a></li>
  </ul>
  <div id='showlists'>
  </div>
  <input type="button" id="add" value="load more..." style="width:200px">
  <input type="text" id="count" value="1" style="width:30px">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...