простой Div OnClick Показать Javascript

когда я нажимаю на любую ссылку, появляется соответствующий элемент div но когда я нажимаю на следующую ссылку, появляется новое нажатие, а также ранее нажатые. Я хотел бы, чтобы предыдущий div скрывал. НОВИНКА для разработки, пожалуйста, помогите мне ........

это HTML-код для ссылок:

<code><a class="hide" onclick="showdiv('firstimpression'); " href="#">First Impression</a>
<a class="hide" onclick="showdiv('speaking'); " href="#">Speaking</a>
<a class="hide" onclick="showdiv('eating'); " href="#">Eating</a>
<a class="hide" onclick="showdiv('taste'); " href="#">Taste</a>
<a class="hide" onclick="showdiv('saliva'); " href="#">Saliva</a>
<a class="hide" onclick="showdiv('cleaning');" href="#">Cleaning</a>
<a class="hide" onclick="showdiv('nighttime');" href="#">Night Time</a>
<a class="hide" onclick="showdiv('singledenture');" href="#">Single Denture</a>
<a class="hide" onclick="showdiv('soreness');"  href="#">Soreness</a>
<a class="hide" onclick="showdiv('burning');" href="#">Burning</a>
<a class="hide" onclick="showdiv('adapting');" href="#">Adapting</a>
<a class="hide" onclick="showdiv('futureconsideration');" href="#">Future Consideration</a>
<a class="hide" onclick="showdiv('conclusion');" href="#">Conclusion</a>
</code>

это divs:

<code><div id="firstimpression" class="patientinfodivs">
<div id="speaking" class="patientinfodivs">
</code>

.....и так далее

Javascript код

<code><script type="text/javascript">
function showdiv(id){
document.getElementById(id).style.display = "block";
}
</script>
</code>

Ответы на вопрос(4)

Решение Вопроса

они иногда оказываются такими удобными ...

var _hidediv = null;
function showdiv(id) {
    if(_hidediv)
        _hidediv();
    var div = document.getElementById(id);
    div.style.display = 'block';
    _hidediv = function () { div.style.display = 'none'; };
}

Это предотвратит ненужный поиск в div'ах, чтобы найти того, кого следует скрыть.

Изменить: Расширение по предложению @ StevenRoose:

var _targetdiv = null;
function showdiv(id) {
    if(_targetdiv)
        _targetdiv.style.display = 'none';
    _targetdiv = document.getElementById(id);
    _targetdiv.style.display = 'block';
}
 08 мая 2014 г., 21:31
@ Ник, почему вы решили оставить эту функцию в качестве глобальной переменной вместо ссылки на div? Функция будет начинаться сif(_shownDiv) { _shownDiv.style.display = 'none'; } в таком случае
 09 мая 2014 г., 21:49
@ StevenRoose, особой причины не было. Я добавлю к своему ответу расширенную версию того, что вы предложили.
 01 сент. 2012 г., 16:53
@ user813032 Вы должны принять этот ответ, если он решил вашу проблему
 user81303206 мая 2012 г., 16:46
Большое вам спасибо, это работает отлично. Вы удивительны.

ажать = & quot; нет & quot ;; А затем заставьте выбранный элемент отображать = & quot; блок & quot ;;

Вы также можете организовать его в две функции hidealldivs (), которые будут скрывать все div и ваш текущий showdiv (), который будет отображать выбранные.

Затем onClick позвоните им обоим один за другим

onclick="hidealldivs(); showdiv('eating')"
 27 сент. 2014 г., 15:13
Не могли бы вы предоставить код между тегами скрипта для своего клика? Спасибо

либо в строке.

.patientinfodivs {
    display: none;
}

<div id="firstimpression" class="patientinfodivs" style="display: none;">

). Переменная хранится в объекте функции:

function showdiv( id ) { 
    if( showdiv.div ) { 
        showdiv.div.style.display = 'none';
    }
    showdiv.div = document.getElementById(id);
    showdiv.div.style.display = 'block';
}

Ваш ответ на вопрос