Изотоп - NoLayoutMode с поисковой фильтрацией - объединение JQuery - PullRequest
1 голос
/ 13 марта 2020

Я пытаюсь использовать комбинированные фильтры и поиск , с nolayoutMode . Я совсем не разбираюсь в JQuery, поэтому могу использовать некоторую помощь, комбинируя необходимый код. Мне нужен поиск, фильтр и никакой макет.

Это не позволило бы мне опубликовать весь код, поэтому я связался выше. Любая помощь приветствуется.

nolayoutMode JQuery:

Isotope.Item.prototype._create = function() {
  // assign id, used for original-order sorting
  this.id = this.layout.itemGUID++;
  // transition objects
  this._transn = {
    ingProperties: {},
    clean: {},
    onEnd: {}
  };
  this.sortData = {};
};

Isotope.Item.prototype.layoutPosition = function() {
  this.emitEvent("layout", [this]);
};

Isotope.prototype.arrange = function(opts) {
  // set any options pass
  this.option(opts);
  this._getIsInstant();
  // just filter
  this.filteredItems = this._filter(this.items);
  // flag for initalized
  this._isLayoutInited = true;
};

// layout mode that does not position items
Isotope.LayoutMode.create("none");

// --------------- //

// init Isotope
var $grid = $(".grid").isotope({
  itemSelector: ".element-item",
  layoutMode: "none"
});
// filter functions
var filterFns = {
  // show if number is greater than 50
  numberGreaterThan50: function() {
    var number = $(this)
      .find(".number")
      .text();
    return parseInt(number, 10) > 50;
  },
  // show if name ends with -ium
  ium: function() {
    var name = $(this)
      .find(".name")
      .text();
    return name.match(/ium$/);
  }
};
// bind filter button click
$("#filters").on("click", "button", function() {
  var filterValue = $(this).attr("data-filter");
  // use filterFn if matches value
  filterValue = filterFns[filterValue] || filterValue;
  $grid.isotope({ filter: filterValue });
});
// change is-checked class on buttons
$(".button-group").each(function(i, buttonGroup) {
  var $buttonGroup = $(buttonGroup);
  $buttonGroup.on("click", "button", function() {
    $buttonGroup.find(".is-checked").removeClass("is-checked");
    $(this).addClass("is-checked");
  });
});
...