флажок активации фильтра микситупа, установленный в соответствии с хешем при загрузке страницы - PullRequest
0 голосов
/ 05 июля 2019

У меня есть следующий код для хэширования результатов фильтра mixitup. Вы можете увидеть рабочий пример по адресу: https://demos.kunkalabs.com/mixitup/filtering-by-url/

Мне нужно отобразить соответствующий флажок, установленный при загрузке страницы.

Любая помощь будет оценена.

<script>


            var targetSelector = '.mix';



            function getSelectorFromHash() {
                var hash = window.location.hash.replace(/^#/g, '');

                var selector = hash ? '.' + hash : targetSelector;

                return selector;
            }



            function setHash(state) {
                var selector = state.activeFilter.selector;
                var newHash = '#' + selector.replace(/^\./g, '');

                if (selector === targetSelector && window.location.hash) {
                    // Equivalent to filter "all", remove the hash

                    history.pushState(null, document.title, window.location.pathname); // or history.replaceState()
                } else if (newHash !== window.location.hash && selector !== targetSelector) {
                    // Change the hash

                    history.pushState(null, document.title, window.location.pathname + newHash); // or history.replaceState()
                }
            }

            // Instantiate and configure the mixer

            var mixer = mixitup('.container', {
                selectors: {
                    target: targetSelector
                },
                load: {
                    filter: getSelectorFromHash() // Ensure that the mixer's initial filter matches the URL on startup
                },
                callbacks: {
                    onMixEnd: setHash // Call the setHash() method at the end of each operation
                }
            });



            window.onhashchange = function() {
                var selector = getSelectorFromHash();

                if (selector === mixer.getState().activeFilter.selector) return; // no change

                mixer.filter(selector);
            };
</script>
...