Ошибка фильтра при использовании Isotope и Webpack - PullRequest
0 голосов
/ 21 октября 2019

Я использую изотоп с веб-пакетом. Изотоп создается, но фильтрация не работает. Вот код:

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

Что я делаю не так? Спасибо!

1 Ответ

0 голосов
/ 21 октября 2019

Анализируя proto экземпляра изотопа $ iso, я не вижу функцию с именем isotope, но я вижу функцию с именемrange, и она работает!

Итак, внутрифункция щелчка, вместо этого используйтеrange ():

$('.adv-select').on('click', function(e){
    e.preventDefault(); 
    const $target = $(this).data('target');
    if($target == 'all') {
        $iso.arrange({ filter: '*' });
    } else {
        $iso.arrange({ filter: $target });
    }
});

Я не знаю почему, но это работает.

...