javascript - 使用 Html 选择选项对 jQuery 同位素进行排序的问题

标签 javascript jquery jquery-isotope

使用 jQuery 和同位素插件,我在通过更改下拉列表对项目进行排序时遇到一些问题。您可以看一下this demo并告诉我为什么当我选择排序值时无法对同位素容器进行排序?

这是我用于排序的部分

  $('#sorts').on( 'change', function() {
    var sortByValue = this.value;
      console.log(sortByValue);
    $container.isotope({ sortBy: sortByValue });
  });  

这是整个同位素部分代码:

$( function() {
  // init Isotope
  var $container = $('.isotope').isotope({
    itemSelector: '.element-item',
    layoutMode: 'fitRows'
  });
  // 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 on select change
  $('#filters').on( 'change', function() {
    // get filter value from option value
    var filterValue = this.value;
    // use filterFn if matches value
    filterValue = filterFns[ filterValue ] || filterValue;
    $container.isotope({ filter: filterValue });
  });

   // bind sort button click
  $('#sorts').on( 'change', function() {
    var sortByValue = this.value;
      console.log(sortByValue);
    $container.isotope({ sortBy: sortByValue });
  });  

});

最佳答案

我已经检查了这个例子,看看它是否有效

$('.isotope').isotope({
    itemSelector: '.element-item',
    layoutMode: 'fitRows',
    getSortData: {
      name: '.name',
      symbol: '.symbol',
      number: '.number parseInt',
      category: '[data-category]',
      weight: function( itemElem ) {
        var weight = $( itemElem ).find('.weight').text();
        return parseFloat( weight.replace( /[\(\)]/g, '') );
      }
    }
  });

查看 website 中的示例

关于javascript - 使用 Html 选择选项对 jQuery 同位素进行排序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29960758/

相关文章:

javascript - 防止默认粘贴

javascript - 添加覆盖后如何禁用 div 元素?

javascript - jQuery 找到所有按钮并单击

jQuery Isotope 可能是 Chrome 错误吗?

jquery-isotope - 具有起始大块的 jQuery 同位素不起作用

php - 使用单元格值作为参数将 javascript 函数应用于表格的每一行?

javascript - 如何根据链接包含的字母/单词查找并单击链接

jQuery SlideDown 在 Firefox 中闪烁

jquery - 为什么我必须单击列表项两次才能生效?

javascript - 如何使用 Google Charts 设置已完成工作量的百分比