Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать так чтоб когда я нажимал на div1 div2 исчезал - js

Максим Гулин Ученик (112), на голосовании 11 месяцев назад
Я хочу, когда я кликаю на Div1, Div2 исчезал и наоборот

У меня есть 2 блока, нажимая на Div1 (style none) контента меняется на (style Block).И с Div2 также. Я хочу что б нажимая на Div1 проверялся style Div2, и если style Div2 = Block менялся на none, и все наоборот. Система как в input radio

 // FAQ1 
function showDiv1(Div1) {
var x = document.getElementById(Div1);
if(x.style.display=="none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}


// FAQ2
function showDiv2(Div2) {
var y = document.getElementById(Div2);
if(y.style.display=="none") {
y.style.display = "block";
} else {
y.style.display = "none";
}
}
Голосование за лучший ответ
бабуин гибонович Оракул (50164) 1 год назад
Ваш код уже почти готов. Вам нужно просто проверить состояние второго блока каждый раз, когда вы нажимаете на первый, и наоборот. Попытайтесь использовать следующий оптимизированный код:

```javascript
 // FAQ1  
function showDiv1(Div1, Div2) {
var x = document.getElementById(Div1);
var y = document.getElementById(Div2);
if(x.style.display=="none") {
x.style.display = "block";
y.style.display = "none";
} else {
x.style.display = "none";
y.style.display = "block";
}
}

// FAQ2
function showDiv2(Div1, Div2) {
var x = document.getElementById(Div1);
var y = document.getElementById(Div2);
if(y.style.display=="none") {
y.style.display = "block";
x.style.display = "none";
} else {
y.style.display = "none";
x.style.display = "block";
}
}

```

Теперь каждый раз, когда вы нажимаете на Div1, он проверяет, отображается ли Div2, и если так, то прячет его, и наоборот.

Обратите внимание, что вы должны вызывать эти функции, передавая id's обоих элементов в качестве аргументов.

Например

```html
  

Это Div2


```

Помимо этого, обратите внимание, что этот код требует, чтобы ваши divs были изначально установлены со стилями `display: none;` или `display: block;` в вашем CSS коде, так как JS `style.display` не учитывает CSS в качестве своего начального состояния. Если вы создаете divs без начально установленных стилей, вам нужно будет предварительно установить стили через JavaScript перед тем, как использовать `style.display`.
Максим ГулинУченик (112) 1 год назад
А можешь сделать не как Radio а как кнопка включения и выключения.
Сейчас когда я нажимаю на блок Div1 - кнопку, она дает материал Div1 а если нажму еще раз даст материал Div2 . Можешь сделать что б при еще одном нажатии не открывался второй материал блок .
Похожие вопросы