laimas, верно, "фон" подразумевается у всего div-a
|
_marisha,
Цитата:
.put_off label{ display: block; height: 100%; } |
В общем был скрипт, который менял логику работы чекбокса:
compare: function(event) { var checkbox = this.obCompare.querySelector('[data-entity="compare-checkbox"]'),//input target = BX.getEventTarget(event);//span checked = true; if (checkbox) { var checked = target === checkbox ? checkbox.checked : !checkbox.checked; /*Добавлена проверка*/ if (checked == true) { document.getElementById('button_on_checkbox').innerHTML = 'В сравнении'; document.getElementById('compare-active').classList.add('compare-active'); } else { document.getElementById('button_on_checkbox').innerHTML = 'Сравнить'; document.getElementById('compare-active').classList.remove('compare-active'); } /*Добавлена проверка*/ } var url = checked ? this.compareData.compareUrl : this.compareData.compareDeleteUrl, compareLink; if (url) { if (target !== checkbox) { BX.PreventDefault(event); this.setCompared(checked); } switch (this.productType) { case 0: // no catalog case 1: // product case 2: // set compareLink = url.replace('#ID#', this.product.id.toString()); break; case 3: // sku compareLink = url.replace('#ID#', this.offers[this.offerNum].ID); break; } BX.ajax({ method: 'POST', dataType: checked ? 'json' : 'html', url: compareLink + (compareLink.indexOf('?') !== -1 ? '&' : '?') + 'ajax_action=Y', onsuccess: checked ? BX.proxy(this.compareResult, this) : BX.proxy(this.compareDeleteResult, this) }); } }, Добавлена проверка на чекбокс. Сейчас вроде функционирует как нужно, т.е. если чекбокс отмечен, то применяется фон и меняется надпись. Возник вопрос в другом, каким образом сделать так, чтобы после перезагрузки страницы все стили сохранялись? На данный момент после перезагрузки страницы только чекбокс отмечен, а стилей нет |
Есть localStorage
Делаю так: if (checked == true) { var comparedText = document.getElementById('button_on_checkbox').innerHTML = 'В сравнении'; localStorage.setItem('comparedText', comparedText); if(localStorage.getItem('compareText') == 'В сравнении') { document.getElementById('button_on_checkbox').innerHTML = 'В сравнении'; } document.getElementById(`compare-active`).classList.add(`compare-active`); } В консоли у localStorage есть compareText, но при обновлении страницы надпись 'В сравнении' не сохраняется :-? |
Удалось сохранить стили после обновления страницы:
if (localStorage['checked'] == 'true' ) { var comparedText = document.getElementById('button_on_checkbox').innerHTML = 'В сравнении'; document.getElementById(`compare-active`).classList.add(`compare-active`); } Теперь возникла другая неприятность. Если у одного товара чекбокс отмечен, тогда у всех товаров кнопка выделена будто товар отмечен чекбоксом :( |
Часовой пояс GMT +3, время: 05:19. |