webpack - 使用 Isotope 和 Webpack 时过滤器错误
问题描述
我在 webpack 中使用同位素。正在实例化同位素,但过滤不起作用。这是代码:
var Isotope = require('isotope-layout');
export const Advices = {
init: function(){
var $iso = new Isotope( '.advices-list', {
itemSelector: '.advice-item',
percentPosition: true,
layoutMode: 'fitRows',
filter: '*'
});
$('.adv-select').on('click', function(e){
e.preventDefault();
const $target = $(this).data('target');
if($target == 'all') {
$iso.Isotope({ filter: '*' });
} else {
$iso.Isotope({ filter: $target });
}
});
}
}
所以,当页面加载时,同位素正在工作,但是当我点击时,我得到了错误:
$iso.Isotope is not a function
我究竟做错了什么 ?谢谢 !
解决方案
分析同位素实例$iso的proto,我没有看到一个叫做isotope的函数,但是我看到了一个叫做arrange的函数,它可以工作!
因此,在 click 函数中,请改用安排():
$('.adv-select').on('click', function(e){
e.preventDefault();
const $target = $(this).data('target');
if($target == 'all') {
$iso.arrange({ filter: '*' });
} else {
$iso.arrange({ filter: $target });
}
});
我不知道为什么,但它有效。
推荐阅读
- excel - 如何让 VBA 代码重复输入
- c++ - 为什么 putc() 不能在 C++ 中实现为宏?(或者可以吗?)
- javascript - 创建 React App 构建不会渲染所有元素
- python - Keras TensorFlow 多个错误
- php - 如何输出我在数组中找到元素的索引
- excel - 如何限制用户仅在 Excel 用户表单中具有相同名称模式的所有文本框/文本框中输入数字
- installation - spyder 上没有名为“sklearn”的模块消息
- c++ - 有没有办法在 C++ 中“翻译”类型?
- amazon-s3 - 如何使用 AWS Java SDK 2 将文件上传到 AWS 存储桶
- java - Java:二分法