У меня есть код, чтобы показать/скрыть два div на основе щелчка стрелки. Однако второй div требует двух щелчков, прежде чем он скрывается, и стрелка не изменится, как ожидалось. Верхний div работает отлично. Любые предложения о том, что я делаю неправильно, пожалуйста?Javascript show/hide div требует двух кликов
EDIT - Благодаря двум плакатам, которые указали на мою ошибку имен в стрелках. Однако после загрузки страницы второй div по-прежнему требует двух щелчков, прежде чем он переключится.
HTML
<div id="start_conditions_arrow" class="arrow_down" onclick="toggleDiv('start_conditions')"></div>
<h2>Starting Conditions</h2>
<div id="start_conditions">
<%= render :partial => 'start_conditions', :object => @page.start_conditions %>
</div>
<div id="probability_arrow" class="arrow_right" onclick="toggleDiv('probability_inputs')"></div>
<h2>Probability Inputs</h2>
<div id="probability_inputs">
<%= render :partial => 'probability_inputs', :object => @page.probability_inputs %>
</div>
Javascript
var toggleDiv = function(id){
var tag = document.getElementById(id).style;
if(tag.display == 'none'){
document.getElementById(id).style.display='block';
document.getElementById(id + '_arrow').className='arrow_down';
} else {
document.getElementById(id).style.display='none';
document.getElementById(id + '_arrow').className='arrow_right';
}
};
CSS
.arrow_down, .arrow_right {
width: 0;
height: 0;
margin: 12px 12px 0 0;
float: left;
cursor: pointer;
}
.arrow_down {
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 18px solid #d5d5d5;
}
.arrow_right {
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
border-left: 18px solid #d5d5d5;
}
#probability_inputs {
display: none;
}
#start_conditions {
display: none;
}
Вот такой Codepen включая выше : https://codepen.io/anon/pen/yXozYJ
может у создать ссылку – PSR
Что тонированное HTML выглядеть? –
Прошу прощения, я не могу предоставить ссылку на этот фрагмент внутреннего Rails-приложения без отображения собственных внутренних данных. Надеюсь, я предоставил достаточно кода, чтобы определить, почему он не работает, как я ожидаю. Пожалуйста, дайте мне знать, если вам нужно больше увидеть. – Serenthia