1

変更時にコンテナー div (#results) に DB からの新しいフィルター処理された結果を入力するフィルター フォームがあります。しかし、フィルターを変更した後、Infinite Ajax Scrollプラグインは最初の検索結果を2 ページ目に表示します。変更イベントでは、古い結果を完全にリセットし、新しい結果のみを表示する必要があります。私は多くの解決策を試しましたが、何もしませんでした。それを行う方法があることは知っていますが、コードでそれらを使用する方法がわかりません(コメントを確認してください)。

    // Form select inputs: on change call the filter
    $("select").on("change", function() {
       setTimeout(function() { 
         ias.destroy(); 
       }, 1000);
       ias.bind();
       filter();
    });

    // Filter: Ajax call that returns new results by a SQL query to the DB
    var filter = function() {
      var formData = form.serializeObject();
      $.ajax({
        url: "/libs/filterData.php",
        type: "POST",
        data: JSON.stringify(formData),
        cache: false,
        success: function(results) {
          $("#results").html(results);
        }
      });
    };

    // IAS configuration
    //var initializeIas = function() {
      var ias = jQuery.ias({
        container: "#results",
        item: ".result",
        pagination: ".page-nav",
        next: ".page-nav a"
      });
    //};

//initializeIas();

このソリューションも試しましたが、うまくいきません。

同様の問題がここにあります

4

1 に答える 1

0

成功ハンドラ内で IAS を再初期化してみてください。

// Filter: Ajax call that returns new results by a SQL query to the DB
var filter = function() {
  var formData = form.serializeObject();
  $.ajax({
    url: "/libs/filterData.php",
    type: "POST",
    data: JSON.stringify(formData),
    cache: false,
    success: function(results) {
      ias.destroy(); 
      $("#results").html(results);
      ias.bind();
    }
  });
};

// IAS configuration
var ias = jQuery.ias({
      container: "#results",
      item: ".result",
      pagination: ".page-nav",
      next: ".page-nav a"
  });
于 2014-06-26T09:57:59.983 に答える