Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.03.2020, 13:19
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

laimas, верно, "фон" подразумевается у всего div-a
Ответить с цитированием
  #12 (permalink)  
Старый 03.03.2020, 13:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

_marisha,
Сообщение от laimas
, и label, span должны иметь стиль block.
.put_off label{
      display: block;
      height: 100%;
  }
Ответить с цитированием
  #13 (permalink)  
Старый 12.03.2020, 11:03
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

В общем был скрипт, который менял логику работы чекбокса:
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)
});
}
},


Добавлена проверка на чекбокс.
Сейчас вроде функционирует как нужно, т.е. если чекбокс отмечен, то применяется фон и меняется надпись.

Возник вопрос в другом, каким образом сделать так, чтобы после перезагрузки страницы все стили сохранялись?
На данный момент после перезагрузки страницы только чекбокс отмечен, а стилей нет
Ответить с цитированием
  #14 (permalink)  
Старый 12.03.2020, 12:18
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Есть 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, но при обновлении страницы надпись 'В сравнении' не сохраняется
Ответить с цитированием
  #15 (permalink)  
Старый 13.03.2020, 11:35
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Удалось сохранить стили после обновления страницы:
if (localStorage['checked'] == 'true' )
{
var comparedText = document.getElementById('button_on_checkbox').innerHTML = 'В сравнении';
document.getElementById(`compare-active`).classList.add(`compare-active`);
}


Теперь возникла другая неприятность.
Если у одного товара чекбокс отмечен, тогда у всех товаров кнопка выделена будто товар отмечен чекбоксом
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление параметра SRC в iframe при клике Kilster Общие вопросы Javascript 3 14.08.2019 16:58
Менять цвет фона select option при наведении Dmitriykh Элементы интерфейса 3 25.07.2011 13:04
Появляющаяся форма при нажатии на чекбокс bananapapa Общие вопросы Javascript 1 21.07.2010 09:39
Добавление элементов при нажатии frolvict Общие вопросы Javascript 16 06.04.2010 19:56
Добавление класса на елемент по id при фокусе на input Andrew_tl Events/DOM/Window 1 18.02.2010 19:09