Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2022, 07:15
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Удалить строку в таблице при изменении стиля другоо объекта по атрибуту
Приветствую вас всемогущие! Помогите пожалуйста сделать следующее:
Имею div с классом print-order-grid ui-sortable, в нем уже имеются div с классом print-order-cell при определенных действиях на странице в этом блоке появляются дополнительные блоки с таким же классом print-order-cell но с атрибутом data-id="11100" (id может быть любым), так вот нужно при каждом добавлении такого блока перезагрузить страницу 1 раз.
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2022, 07:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

(function wait() {
  const block = document.querySelector('.print-order-grid.ui-sortable .print-order-cell[data-id]');

  if (block)
    location.reload();
  else
    setTimeout(wait, 100);
}());
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2022, 08:07
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Перезагрузка страницы сработала, но перезагружает он не 1 раз, а зацикливается т.к. после перезагрузки он этот блок (с тем же data-id при появлении которого мы перезагружали страницу) снова воспринимает как вновь добавленный и соответственно перезагружается опять...
причиной тому, то, что после перезагрузки этот блок добавляется добавляется динамически и скрипт воспринимает его, как новый...

Вот в том то и проблема у меня... может нужно как то в куки data-id этого блока записать ? или как?
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2022, 08:35
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

Нужно. В задаче этого не было.

const previousIds = new Set(JSON.parse(localStorage.previousIds || '[]'));

(function wait() {
  const newIds = Array.from(
    document.querySelectorAll('.print-order-grid.ui-sortable .print-order-cell[data-id]'),
    block => block.getAttribute('data-id')
  ).filter(id => !previousIds.has(id));

  if (newIds.length) {
    localStorage.previousIds = JSON.stringify([...previousIds, ...newIds]);
    location.reload();
  } else {
    setTimeout(wait, 100);
  }
}());
__________________
29375, 35

Последний раз редактировалось Aetae, 12.03.2022 в 08:42.
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2022, 17:47
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Супер, премного благодарен вам, киньте в ЛС, ваш кошелек юмани - закину вам на бутылочку пива)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Действие при изменении стиля Diox Общие вопросы Javascript 22 07.08.2020 20:43
Как удалить всю строку кода при помощи клавиатуры IgorFomenko Общие вопросы Javascript 5 19.05.2020 11:12
Proxy объекта DOM: ошибка Illegal invocation при изменении style Ekaterina8888 Общие вопросы Javascript 2 05.04.2020 22:33
Нужно удалить строку в таблице. Раиль Элементы интерфейса 2 16.12.2010 15:58
Изменение цвета ячейки в таблице, при наведении на строку другой таблицы Psychosonic Общие вопросы Javascript 12 24.11.2010 16:44