Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2019, 06:36
Аспирант
Отправить личное сообщение для Spasatel801 Посмотреть профиль Найти все сообщения от Spasatel801
 
Регистрация: 03.08.2012
Сообщений: 46

Collapse boostrap 4 событие.
Здравствуйте. Ребят помогите с вопросом, уже несколько дней голову ломаю, честно сдался и решил обратится к вам. Есть несколько Collapse, от 3 до бесконечности скажем так, в зависимости на какой странице. Вот структура:
<div class="block_search_ajax">
<div class="float_field mt-2 pt-2 pb-2 pl-3 pr-3 border rounded">
<a href="#bs_568" class="lable_field collapsed" data-toggle="collapse" aria-expanded="false" aria-controls="bs_568">Название</a>
<div class="multi-collapse collapse" id="bs_568" style="">	
  содержимое
</div>
					            
 <div class="float_field mt-2 pt-2 pb-2 pl-3 pr-3 border rounded">
<a class="lable_field collapsed" data-toggle="collapse" href="#bs_check" role="button" aria-expanded="false" aria-controls="bs_check">Название</a>
<div class="multi-collapse collapse" id="bs_check" style=""> 
 содержимое
</div>
        
<div class="float_field mt-2 pt-2 pb-2 pl-3 pr-3 border rounded">
 <a class="lable_field" data-toggle="collapse" href="#bs_add_rc" role="button" aria-expanded="false" aria-controls="bs_add_rc">Название</a>
<div class="collapse multi-collapse" id="bs_add_rc">
 содержимое
</div>				    			    				    			    				    			    				    			    				    			    				    			    				    			    				    			                       
</div>


нужно сделать чтоб после закрытия или открытие сохранялось его текущее состояние при перезагрузке странице.
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2019, 07:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Spasatel801,
при клике по ссылке в block_search_ajax сохранять в обьект aria-controls этой ссылки, при повторном клике удалять это id, сам обьект хранить в localStorage при загрузке страницы кликать по ключам этого обьекта.
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2019, 07:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Spasatel801
Есть несколько Collapse
Ты про значения class или data-toggle?
Ответить с цитированием
  #4 (permalink)  
Старый 04.10.2019, 20:54
Аспирант
Отправить личное сообщение для Spasatel801 Посмотреть профиль Найти все сообщения от Spasatel801
 
Регистрация: 03.08.2012
Сообщений: 46

Рони, спасай. Ничего у меня не получается
Ответить с цитированием
  #5 (permalink)  
Старый 04.10.2019, 21:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Spasatel801,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.js"></script>

  <script>
jQuery(window).on("load", function() {
    var obj = JSON.parse(localStorage.getItem("collapse") || "{}");
    Object.keys(obj).forEach(function(id) {
    var selector = "[aria-controls='"+id+"']";
    //jQuery(selector).click();//эту строку открыть, ниже строки
    jQuery(selector).attr("aria-expanded", "true").addClass("collapsed");// убрать
    selector = "#" + id; //  если нужна
    jQuery(selector).addClass("show");// анимация
    });
    jQuery(".block_search_ajax").on("click", "[aria-controls]", function() {
    var id = this.getAttribute("aria-controls");
    id in obj ? delete obj[id]  : (obj[id] = true);
    localStorage.setItem("collapse", JSON.stringify(obj));
    })
});
  </script>
</head>

<body>
<div class="block_search_ajax">
<div class="float_field mt-2 pt-2 pb-2 pl-3 pr-3 border rounded">
<a href="#bs_568" class="lable_field collapsed" data-toggle="collapse" aria-expanded="false" aria-controls="bs_568">Название</a>
<div class="multi-collapse collapse" id="bs_568" style="">
  содержимое
</div>
</div>
 <div class="float_field mt-2 pt-2 pb-2 pl-3 pr-3 border rounded">
<a class="lable_field collapsed" data-toggle="collapse" href="#bs_check" role="button" aria-expanded="false" aria-controls="bs_check">Название</a>
<div class="multi-collapse collapse" id="bs_check" style="">
 содержимое
</div>
</div>
<div class="float_field mt-2 pt-2 pb-2 pl-3 pr-3 border rounded">
 <a class="lable_field" data-toggle="collapse" href="#bs_add_rc" role="button" aria-expanded="false" aria-controls="bs_add_rc">Название</a>
<div class="collapse multi-collapse" id="bs_add_rc">
 содержимое
</div>
</div>
</div>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 05.10.2019, 08:36
Аспирант
Отправить личное сообщение для Spasatel801 Посмотреть профиль Найти все сообщения от Spasatel801
 
Регистрация: 03.08.2012
Сообщений: 46

Спасибо, Рони! Выручаешь как всегда ))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
клик и событие работает клик и это событие не работает Trues Элементы интерфейса 3 27.05.2015 09:28
событие mouse up Trues Общие вопросы Javascript 4 05.05.2015 23:58
Событие hover hfts_rider Events/DOM/Window 10 16.10.2014 11:51
Событие click Гробовщик jQuery 1 31.07.2013 07:28
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46