Как всегда удалить встроенный стиль для конкретного элемента?
Как всегда удалить встроенный стиль для конкретного элемента?
Я использую этот код для удаления моего стиля:
jQuery('.myelement').removeAttr('style');
но это не работает, вероятно, потому что другой код JS добавляет встроенный стиль после меня код, чтобы удалить его. После вызова моего файла нет файла.js.
Я знаю, что могу редактировать файл.js из плагина фото, но если я обновлю плагин, я потеряю свои изменения.
Как я могу написать в jQuery что-то, чтобы сказать, что этот элемент никогда не будет иметь встроенный стиль?
1 ответ
Чтобы убедиться, что стиль элементов всегда пуст, даже если какой-то другой код выполняется после вашего, вы можете использовать наблюдатель мутации для сброса стиля при каждом изменении атрибута стиля узла, например
let element = document.querySelector(".myelement");
let observer = new MutationObserver((m) => {
if (element.style.length > 0) {
element.style = {};
}
});
observer.observe(element, {
attributes: true,
attributeFilter: ["style"]
});
// now this wont do anything
element.style.backgroundColor = "red";
<div class="myelement">
unicorn
</div>