首页 > 解决方案 > 同位素过滤器函数为元素项返回 0

问题描述

我正在使用 Isotope 的香草 JS 版本来创建像这样的过滤器功能

isotope.arrange({
    filter: function(element) {
        console.log(element)

但是,变量元素返回的值是 0,而不是像我的本地机器上那样的 HTMLElement。

事先记录 isotope.getItemElements() 时,它会返回所有项目,因此我知道它已被正确实例化。

任何帮助将非常感激

测试用例:https ://codepen.io/matthewattanasio/pen/qBOjeMr

标签: javascriptjquery-isotope

解决方案


所以我认为文档不正确https://isotope.metafizzy.co/filtering.html#functions声明如下

iso.arrange({
  // item element provided as argument
  filter: function( itemElem ) {
    var number = itemElem.querySelector('.number').innerText;
    return parseInt( number, 10 ) > 50;
  }
});

但是在我的测试用例https://codepen.io/matthewattanasio/pen/qBOjeMr中,过滤器函数有两个参数,它的第二个参数返回元素,例如上面的代码实际上应该是

iso.arrange({
  // item element provided as argument
  filter: function( itemElem1, itemElem2 ) {
    var number = itemElem2.querySelector('.number').innerText;
    return parseInt( number, 10 ) > 50;
  }
});

推荐阅读