如果用户在 jQuery 中首次访问页面,如何确定本地存储
How to determine local storage if the user is accessing the page for the first time in jQuery
我有一个 Bootstrap 4 手风琴,我对 Jquery 中的本地存储概念很陌生,我的手风琴代码如下。
但是,我希望实现
- 如果用户是第一次访问该页面 - 所有手风琴都需要显示 class 附加,以便在页面加载时打开所有手风琴。
- 如果用户再次访问该页面,则应在页面加载时关闭手风琴并移除显示 class
.collapsible-link::before {
content: '';
width: 14px;
height: 2px;
background: #333;
position: absolute;
top: calc(50% - 1px);
right: 1rem;
display: block;
transition: all 0.3s;
}
.collapsible-link::after {
content: '';
width: 2px;
height: 14px;
background: #333;
position: absolute;
top: calc(50% - 7px);
right: calc(1rem + 6px);
display: block;
transition: all 0.3s;
}
.collapsible-link[aria-expanded='true']::after {
transform: rotate(90deg) translateX(-1px);
}
.collapsible-link[aria-expanded='true']::before {
transform: rotate(180deg);
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div class="row">
<div class="col-lg-9 mx-auto">
<!-- Accordion -->
<div id="accordionExample" class="accordion shadow">
<!-- Accordion item 1 -->
<div class="card">
<div id="headingOne" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" class="d-block position-relative text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #1</a></h6>
</div>
<div id="collapseOne" aria-labelledby="headingOne" data-parent="#accordionExample" class="collapse show">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 2 -->
<div class="card">
<div id="headingTwo" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #2</a></h6>
</div>
<div id="collapseTwo" aria-labelledby="headingTwo" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 3 -->
<div class="card">
<div id="headingThree" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #3</a></h6>
</div>
<div id="collapseThree" aria-labelledby="headingThree" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
根据 Using the Web Storage API 你可以测试一个变量:
const firstTime = localStorage.getItem('firstTime');
if (firstTime == null) {
$('#accordionExample .collapse').removeAttr("data-parent").collapse('show');
localStorage['firstTime'] = 'false';
} else {
$('#accordionExample .collapse').attr("data-parent","#accordionExample").collapse('hide');
}
片段 (fiddle here):
const firstTime = localStorage.getItem('firstTime');
if (firstTime == null) {
$('#accordionExample .collapse').removeAttr("data-parent").collapse('show');
localStorage['firstTime'] = 'false';
} else {
$('#accordionExample .collapse').attr("data-parent","#accordionExample").collapse('hide');
}
.collapsible-link::before {
content: '';
width: 14px;
height: 2px;
background: #333;
position: absolute;
top: calc(50% - 1px);
right: 1rem;
display: block;
transition: all 0.3s;
}
.collapsible-link::after {
content: '';
width: 2px;
height: 14px;
background: #333;
position: absolute;
top: calc(50% - 7px);
right: calc(1rem + 6px);
display: block;
transition: all 0.3s;
}
.collapsible-link[aria-expanded='true']::after {
transform: rotate(90deg) translateX(-1px);
}
.collapsible-link[aria-expanded='true']::before {
transform: rotate(180deg);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div class="row">
<div class="col-lg-9 mx-auto">
<!-- Accordion -->
<div id="accordionExample" class="accordion shadow">
<!-- Accordion item 1 -->
<div class="card">
<div id="headingOne" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" class="d-block position-relative text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #1</a></h6>
</div>
<div id="collapseOne" aria-labelledby="headingOne" data-parent="#accordionExample" class="collapse show">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 2 -->
<div class="card">
<div id="headingTwo" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #2</a></h6>
</div>
<div id="collapseTwo" aria-labelledby="headingTwo" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 3 -->
<div class="card">
<div id="headingThree" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #3</a></h6>
</div>
<div id="collapseThree" aria-labelledby="headingThree" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
</div>
</div>
</div>
我有一个 Bootstrap 4 手风琴,我对 Jquery 中的本地存储概念很陌生,我的手风琴代码如下。 但是,我希望实现
- 如果用户是第一次访问该页面 - 所有手风琴都需要显示 class 附加,以便在页面加载时打开所有手风琴。
- 如果用户再次访问该页面,则应在页面加载时关闭手风琴并移除显示 class
.collapsible-link::before {
content: '';
width: 14px;
height: 2px;
background: #333;
position: absolute;
top: calc(50% - 1px);
right: 1rem;
display: block;
transition: all 0.3s;
}
.collapsible-link::after {
content: '';
width: 2px;
height: 14px;
background: #333;
position: absolute;
top: calc(50% - 7px);
right: calc(1rem + 6px);
display: block;
transition: all 0.3s;
}
.collapsible-link[aria-expanded='true']::after {
transform: rotate(90deg) translateX(-1px);
}
.collapsible-link[aria-expanded='true']::before {
transform: rotate(180deg);
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div class="row">
<div class="col-lg-9 mx-auto">
<!-- Accordion -->
<div id="accordionExample" class="accordion shadow">
<!-- Accordion item 1 -->
<div class="card">
<div id="headingOne" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" class="d-block position-relative text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #1</a></h6>
</div>
<div id="collapseOne" aria-labelledby="headingOne" data-parent="#accordionExample" class="collapse show">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 2 -->
<div class="card">
<div id="headingTwo" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #2</a></h6>
</div>
<div id="collapseTwo" aria-labelledby="headingTwo" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 3 -->
<div class="card">
<div id="headingThree" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #3</a></h6>
</div>
<div id="collapseThree" aria-labelledby="headingThree" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
根据 Using the Web Storage API 你可以测试一个变量:
const firstTime = localStorage.getItem('firstTime');
if (firstTime == null) {
$('#accordionExample .collapse').removeAttr("data-parent").collapse('show');
localStorage['firstTime'] = 'false';
} else {
$('#accordionExample .collapse').attr("data-parent","#accordionExample").collapse('hide');
}
片段 (fiddle here):
const firstTime = localStorage.getItem('firstTime');
if (firstTime == null) {
$('#accordionExample .collapse').removeAttr("data-parent").collapse('show');
localStorage['firstTime'] = 'false';
} else {
$('#accordionExample .collapse').attr("data-parent","#accordionExample").collapse('hide');
}
.collapsible-link::before {
content: '';
width: 14px;
height: 2px;
background: #333;
position: absolute;
top: calc(50% - 1px);
right: 1rem;
display: block;
transition: all 0.3s;
}
.collapsible-link::after {
content: '';
width: 2px;
height: 14px;
background: #333;
position: absolute;
top: calc(50% - 7px);
right: calc(1rem + 6px);
display: block;
transition: all 0.3s;
}
.collapsible-link[aria-expanded='true']::after {
transform: rotate(90deg) translateX(-1px);
}
.collapsible-link[aria-expanded='true']::before {
transform: rotate(180deg);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div class="row">
<div class="col-lg-9 mx-auto">
<!-- Accordion -->
<div id="accordionExample" class="accordion shadow">
<!-- Accordion item 1 -->
<div class="card">
<div id="headingOne" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" class="d-block position-relative text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #1</a></h6>
</div>
<div id="collapseOne" aria-labelledby="headingOne" data-parent="#accordionExample" class="collapse show">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 2 -->
<div class="card">
<div id="headingTwo" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #2</a></h6>
</div>
<div id="collapseTwo" aria-labelledby="headingTwo" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
<!-- Accordion item 3 -->
<div class="card">
<div id="headingThree" class="card-header bg-white shadow-sm border-0">
<h6 class="mb-0 font-weight-bold"><a href="#" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree" class="d-block position-relative collapsed text-dark text-uppercase collapsible-link py-2">Collapsible Group Item #3</a></h6>
</div>
<div id="collapseThree" aria-labelledby="headingThree" data-parent="#accordionExample" class="collapse">
<div class="card-body p-5">
<p class="font-weight-light m-0">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</p>
</div>
</div>
</div>
</div>
</div>
</div>