В целом, проблема такая. Есть div
, внутри которого можно изменять цвета для этого div
через selector/radio
. Значения фона (background-color
) передаются на сервер в БД. Цвета меняются хорошо, но до перезагрузки страницы, т.е. после нажатия F5, background-color
в div
не меняется. После рефреша, background-color
остаётся всегда тот, который был последним до рефреша. Но, на сервер, отправляется корректное значение, которое выбрал пользователь.
Проблема где-то в этом куске, видимо.
....
var selectorCache = {};
function selectElement(htmlId) {
if (htmlId in selectorCache) {
console.log('selectorCache');
console.log(selectorCache[htmlId]);
return selectorCache[htmlId];
}
var $field = $('#' + htmlId);
selectorCache[htmlId] = $field;
return $field;
}
...
setValue: function (htmlId, value) {
$field=selectElement(htmlId);
var $child = $field.children();
$child.remove();
$field.css({'background-color': value.value});}
Почему считаю что в нём, а потому что, если вместо $field=selectElement(htmlId)
использовать даже вот так $field=document.getElementById('htmlId');
, то всё работает нормально. Если у кого-то есть идеи по этой проблеме, просьба поделиться решением.
P.S Первоначальные данные "прилетают" с сервера, то есть, каким цветом должен быть фон. По этой причине, фон и устанавливается тот, который был последним до перезапуска страницы.
Также, заметил то, что для $field
атрибут isConnected
, как я понимаю, это Node isConnected() до перезапуска страницы = true
, после перезапуска он false
, но только если смотреть через дебаггер. Если вызывать через document.getElementById('htmlId').isConnected
, то он всегда возвращает true
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть canvas, который рисует videoЯ хочу поменять источник видео и пока делаю это просто изменением атрибута src