Слушатель событий MixItUp не регистрирует изменения для флажков, установленных с помощью .prop ('checked', true) .trigger ('change'); - PullRequest
0 голосов
/ 01 августа 2020

Я устанавливаю серию флажков и переключателей из одной формы (Форма A) в другую форму (Форма B). И используя поля в форме B, чтобы отфильтровать кучу контента с помощью MixItUp. js. Поля в FormB настроены правильно, однако прослушиватели событий для MixItUp не получают изменения, установленные через jquery. Он улавливает изменения, если я вручную выключаю и снова включаю флажки, поэтому слушатель событий, похоже, не принимает изменения. Вот мои слушатели:

radiosFilter.addEventListener('change', function() {
        var checked = radiosFilter.querySelector(':checked');
        var selector = checked ? checked.value : 'all';
        mixer.filter(selector);
});

checkboxGroup.addEventListener('change', function() {
        var selectors = [];

        // Iterate through all checkboxes, pushing the
        // values of those that are checked into an array

        for (var i = 0; i < checkboxes.length; i++) {
                var checkbox = checkboxes[i];

                if (checkbox.checked) selectors.push(checkbox.value);
        }

        // If there are values in the array, join it into a string
        // using your desired logic, and send to the mixer's .filter()
        // method, otherwise filter by 'all'

        var selectorString = selectors.length > 0 ?
                selectors.join(',') : // or '.' for AND logic
                'all';

        mixer.filter(selectorString);
});

И я устанавливаю значение флажка следующим образом:

if ($('#id-female').is(':checked')) {
    $('#id-female2').prop('checked', true).trigger('change');
}

if ($('#id-male').is(':checked')) {
    $('#id-female2').prop('checked', true).trigger('change');
}

Я пробовал использовать .trigger('change') после опоры или .change(); Однако слушатель событий, похоже, не улавливает ни одного.

Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...