Bootstrap 4 свернуть сохранить после перезагрузки страницы только на рабочем столе - PullRequest
1 голос
/ 07 января 2020

Я хочу сохранить свернуть, показать / скрыть после перезагрузки страницы только на рабочем столе. В приведенном ниже примере сворачивание должно открываться по умолчанию при просмотре рабочего стола после перезагрузки страницы с использованием LocalStorage .

. Я пробовал приведенный ниже пример.

$(document).ready(function () {
    $('a').click(function() {
        //store the id of the collapsible element
        localStorage.setItem('collapseItem', $(this).attr('href'));
    });

    var collapseItem = localStorage.getItem('collapseItem'); 
    if (collapseItem) {
       $(collapseItem).collapse('show')
    }
})

function resize() {
    if ($(window).width() > 992) {
        $('.link').click(function() {
            //store the id of the collapsible element
            localStorage.setItem('collapseItem', $(this).attr('href'));
        });

        var collapseItem = localStorage.getItem('collapseItem');
        if (collapseItem) {
            $(collapseItem).collapse('show')
        }
    } else {

    }
}
$(document).ready(function() {
    $(window).resize(resize);
    resize();
});
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

<p>
  <a class="btn btn-primary link" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
    Link with href
  </a>
</p>
<div class="collapse" id="collapseExample">
    <div class="card card-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
    </div>
</div>

1 Ответ

4 голосов
/ 07 января 2020

Ваш код кажется правильным. Вам просто нужно удалить первую $(document).ready функцию сверху, как вы уже вызывали снизу. Также я обновил код для $(window).resize.

function resize() {
    var collapseItem = localStorage.getItem('collapseItem');
     if ($(window).width() > 992) {
      if (collapseItem) {
        $(collapseItem).collapse('show');
      }
    } else {
      if (collapseItem) {
        $(collapseItem).collapse('hide');
        localStorage.clear();
      }
    }
}
$(document).ready(function () {
  resize();
  $('.link').click(function () {
    //store the id of the collapsible element
    if(localStorage.getItem("collapseItem") !== null) {
        localStorage.clear();
    } else {
        localStorage.setItem('collapseItem', $(this).attr('href'));
    }
  });
});
$(window).resize(resize);
<!DOCTYPE html>
<html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</head>

<body>
  <p>
    <a class="btn btn-primary link" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false"
      aria-controls="collapseExample">
      Link with href
    </a>
  </p>
  <div class="collapse" id="collapseExample">
    <div class="card card-body">
      Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim
      keffiyeh
      helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
    </div>
  </div>
</body>

</html>

Пожалуйста, попробуйте код после удаления браузера localStorage.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...