#javascript
#javascript
Вопрос:
window.onload = function(){
var about2 = document.getElementById("about");
about2.addEventListener("click",about);
}
function about(){
var divabout = document.getElementById("aboutme");
if(divabout.style.display == "none"){
divabout.style.display = "flex";
divabout.style.justifyContent ="center";
}else{
divabout.style.display ="none";
}
}
пожалуйста, скажите мне причину, по которой я должен щелкнуть дважды, чтобы запустить эту функцию.И как это исправить, пожалуйста. большое спасибо .
я просто установил display: none для 1 тега div в css , и я хочу изменить атрибуты отображения .
Комментарии:
1. Пожалуйста, весь весь связанный код (HTML и CSS), чтобы мы могли повторить вашу проблему.
2. Объект element style будет содержать только свойства, установленные непосредственно в HTML-разметке через
style
атрибуты; стили, на которые влияют правила CSS, присутствовать не будут. Добавление и удалениеclass
элемента, как правило, намного лучший способ выполнения действий.3. @Pointy и с чем это связано, что мне нужно щелкнуть дважды, чтобы запустить функцию? пожалуйста, объясни мне, братан, я все еще не понимаю: (
4.
divabout.style.display == "none"
будет, толькоtrue
если в HTML есть атрибут «style», который задает свойство «display».
Ответ №1:
Потому что вы не установили никакого свойства dislplay для вашего HTML по умолчанию. Вот почему при первом нажатии javascript устанавливает все, что ему нужно. затем начал работать со 2-го щелчка.
Вот ваш код, в котором вы не добавили стиль в html
<идентификатор div="about"> Привет</div> <идентификатор div="aboutme"> Обо мне</div>
И вот если я исправлю / добавлю это style=»display:flex;justify-content: center;» в вашем «обо мне» вот так
<идентификатор div="about"> Привет</div> <идентификатор div="о себе" style="display: flex;justify-content: center;">Обо мне</div>
Теперь вы можете проверить, что для запуска требуется всего один щелчок
window.onload = function() {
var about2 = document.getElementById("about");
about2.addEventListener("click", about);
}
function about() {
var divabout = document.getElementById("aboutme");
if (divabout.style.display == "none") {
divabout.style.display = "flex";
divabout.style.justifyContent = "center";
} else {
divabout.style.display = "none";
}
}
<div id="about">Hello</div>
<div id="aboutme" style="display:flex;justify-content: center;">OK About Me</div>