#javascript #html #css
#javascript #HTML #css
Вопрос:
Мне нужна некоторая логика в моем Javascript, чтобы родительский узел узла, в котором было обнаружено событие, исчез. Если быть точным, родительский узел представляет собой ссылку в формате PDF, и как он, так и его дочерний узел (изображение bmp) должны быть невидимыми, если дочерний узел не загружается. Вот что я описал в качестве своей функции прослушивания событий:
window.addEventListener('error', function(event) {
console.log(event);
if (event.target.id == "sheetBmp"){
console.log("sheet bmp failed to load");
//make the pdf disappear also
e.target.parentNode.style.visibility=false;
console.log("pdf nodeshould disappear");
}
}, true);
и вот стиль:
<a id=sheetPdf target='_blank'>
<img id="sheetBmp" onLoad="this.style.visibility='visible'" onError="this.style.visibility='hidden'">
</img>
</a>
Обратите внимание, что я запустил его через отладчик, и после выполнения e.target.parentNode.style.visibility=false;
строки свойство остается неизменным (пустые кавычки), а видимость узла остается видимой на веб-странице. Любая помощь приветствуется
Ответ №1:
Вы устанавливаете недопустимое значение ( false
) для свойства, поэтому браузер его отбрасывает.
Допустимые значения для свойства видимости включают "visible"
и "hidden"
.
Комментарии:
1. Спасибо, это было намного проще, чем я ожидал
2. Это правильно. Кроме того, OP, вероятно
visibility
, на самом деле вообще не нужен, поскольку это оставило бы элементы в макете, но не видимыми. Вероятно, ОП хочетdisplay: none
.3. @rockerest Также большое спасибо за ссылку на это свойство, я предпочитаю этот способ, потому что теперь элемент не оставляет пустого пробела после выдачи ошибки. Спасибо за отличные предложения!