26.11.2019, 08:45
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
svileff,
надо работать с устройством вашего фильтра, а не с checkbox
|
|
26.11.2019, 08:49
|
Аспирант
|
|
Регистрация: 25.11.2019
Сообщений: 39
|
|
Фильтр идет стандартный у него нет не каких настроек. Поэтому к нему не могу подобраться.
|
|
26.11.2019, 08:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от svileff
|
Не совсем понял
|
У вас кастомные списки, родителями которых являются DIV. Эти родители имеют общий класс t-store__filter__item t-store__filter__item_checkbox, но не имеют уникальных признаков. Если сохранять в памяти весь набор флажков под индексами от 0 до N, то, к примеру, изменив порядок следования на странице этих DIV, память "пометит" уже не те, что были сохранены. То же самое и с флажками.
В память нужно писать имя выбранного флажка, который затем и будет выбираться. Но так можно поступать, если имя каждого флажка во всех наборах уникальное. Если нет, то родителям (DIV) также нужно дать уникальные признаки, под которыми будут храниться наборы выбранных их флажков.
|
|
26.11.2019, 08:58
|
Аспирант
|
|
Регистрация: 25.11.2019
Сообщений: 39
|
|
Я побывал назначить id для каждого inputa не выходит, тильда не дает
|
|
26.11.2019, 09:02
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от svileff
|
Я побывал назначить id для каждого inputa
|
А этого не требуется. Плохо, что имена флажков имеют такое "гидрофильное масло", по разумению такое должны иметь их свойства value. Но тоже можно. Я не хочу разбираться, одно ли молочко во всех полях или нет, но именно это нужно запоминать, если это и есть уникальный признак.
|
|
26.11.2019, 09:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
svileff,
убрать прежний добавить этот вниз, перед </body>
<script>
(function(b) {
var e = document.querySelectorAll(b),
a = localStorage.getItem(b),
a = (a = JSON.parse(a)) || (a = {}, localStorage.setItem(b, JSON.stringify(a)));
var time = 100;
e.forEach(function(c, d) {
if(a[d] == true) {time += 150, window.setTimeout(function() {
$(c).trigger("click")
}, time)};});
document.addEventListener("click", function() {
e.forEach(function(c, d) {
a[d] = c.checked;
})
localStorage.setItem(b, JSON.stringify(a))
})
})(".t-checkbox.js-store-filter-opt-chb");
</script>
|
|
26.11.2019, 09:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
svileff,
низ страницы, это там где у вас скрипт Yandex.Metrika, после него, и добавьте, между метрикой и body
|
|
26.11.2019, 09:39
|
Аспирант
|
|
Регистрация: 25.11.2019
Сообщений: 39
|
|
тильда не дает вниз поставить, толь ка на верх перед boby
|
|
26.11.2019, 09:57
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Сообщение от svileff
|
тильда не дает вниз поставить
|
тогда так
$(function() {
(function(b) {
var e = document.querySelectorAll(b),
a = localStorage.getItem(b),
a = (a = JSON.parse(a)) || (a = {}, localStorage.setItem(b, JSON.stringify(a)));
var time = 100;
e.forEach(function(c, d) {
if(a[d] == true) {time += 150, window.setTimeout(function() {
$(c).trigger("click")
}, time)};});
document.addEventListener("click", function() {
e.forEach(function(c, d) {
a[d] = c.checked;
})
localStorage.setItem(b, JSON.stringify(a))
})
})(".t-checkbox.js-store-filter-opt-chb");
});
|
|
26.11.2019, 10:23
|
Аспирант
|
|
Регистрация: 25.11.2019
Сообщений: 39
|
|
так не срабатывает...
|
|
|
|