Как переключить видимость div с помощью нажатия кнопки

Ниже приведен мой код javascript, который я использовал для отображения div при нажатии на button.

Как я могу скрыть его при повторном нажатии? А затем, щелкнув по нему, div должен быть снова видимым?

<script type="text/javascript">
var _hidediv = null;
function showdiv(id) {
    if(_hidediv)
        _hidediv();
    var div = document.getElementById(id);
    div.style.display = 'block';
    _hidediv = function () { div.style.display = 'none'; };
}
</script>

Ответы

Ответ 1

Если вас интересует сокет jQuery:

Это HTML

<a id="button" href="#">Show/Hide</a>
<div id="item">Item</div>

Это jQuery script

$( "#button" ).click(function() {
    $( "#item" ).toggle();
});

Вы можете видеть, как он работает здесь:

http://jsfiddle.net/BQUyT/

Если вы не знаете, как использовать jQuery, вы должны использовать эту строку для загрузки библиотеки:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

И затем используйте эту строку для запуска:

<script>
$(function() {
    // code to fire once the library finishes downloading.
});
</script>

Итак, для этого случая конечный код будет следующим:

<script>
$(function() {
    $( "#button" ).click(function() {
        $( "#item" ).toggle();
    });
});
</script>

Сообщите мне, если вам нужно что-нибудь еще

Подробнее о jQuery можно прочитать здесь: http://jquery.com/

Ответ 2

Чтобы переключить стиль отображения между block и none, вы можете сделать что-то вроде этого:

function toggleDiv(id) {
    var div = document.getElementById(id);
    div.style.display = div.style.display == "none" ? "block" : "none";
}

рабочая демонстрация: http://jsfiddle.net/BQUyT/2/

Ответ 3

Попробуйте выполнить следующую логику:

<script type="text/javascript">
function showHideDiv(id) {
    var e = document.getElementById(id);
    if(e.style.display == null || e.style.display == "none") {
        e.style.display = "block";
    } else {
        e.style.display = "none";
    }
}
</script>

Ответ 4

с помощью JQuery .toggle() вы можете легко выполнить его

$( ".target" ).toggle();

Ответ 5

jQuery будет самым простым способом, если вы хотите его использовать, но это должно работать.

<script type="text/javascript">
    function showHide(){

        var e = document.getElementById('e');

    if ( e.style.display != 'none' ) {
        e.style.display = 'none';
    }
    else {
        e.style.display = '';
    }

}
</script>

Ответ 6

Bootstrap 4 предоставляет для этого компонент Свернуть. Он использует JavaScript за кулисами, но вам не нужно самостоятельно писать JavaScript.

Эта функция работает для <button> и <a>.

Если вы используете <button>, вы должны установить атрибуты data-toggle и data-target:

<button type="button" data-toggle="collapse" data-target="#collapseExample">
  Toggle
</button>
<div class="collapse" id="collapseExample">
  Lorem ipsum
</div>

Если вы используете <a>, вы должны использовать set href и data-toggle:

<a data-toggle="collapse" href="#collapseExample">
  Toggle
</a>
<div class="collapse" id="collapseExample">
  Lorem ipsum
</div>