Удалить строку в таблице при изменении стиля другоо объекта по атрибуту
Приветствую вас всемогущие! Помогите пожалуйста сделать следующее:
Имею div с классом print-order-grid ui-sortable, в нем уже имеются div с классом print-order-cell при определенных действиях на странице в этом блоке появляются дополнительные блоки с таким же классом print-order-cell но с атрибутом data-id="11100" (id может быть любым), так вот нужно при каждом добавлении такого блока перезагрузить страницу 1 раз. |
(function wait() {
const block = document.querySelector('.print-order-grid.ui-sortable .print-order-cell[data-id]');
if (block)
location.reload();
else
setTimeout(wait, 100);
}());
|
Перезагрузка страницы сработала, но перезагружает он не 1 раз, а зацикливается т.к. после перезагрузки он этот блок (с тем же data-id при появлении которого мы перезагружали страницу) снова воспринимает как вновь добавленный и соответственно перезагружается опять...
причиной тому, то, что после перезагрузки этот блок добавляется добавляется динамически и скрипт воспринимает его, как новый... Вот в том то и проблема у меня... может нужно как то в куки data-id этого блока записать ? или как? |
Нужно. В задаче этого не было.
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);
}
}());
|
Супер, премного благодарен вам, киньте в ЛС, ваш кошелек юмани - закину вам на бутылочку пива)
|
| Часовой пояс GMT +3, время: 14:22. |