javascript - 我下面的代码自动加载一个模态,在加载的模态我有一个复选框
问题描述
如果用户选中复选框并单击关闭按钮,则不得再显示模式。我怎样才能做到这一点?
function popUp() {
$("#LoadModal").show()
var modal = document.getElementById('LoadModal')
var closeBtn = document.getElementsByClassName('closeBtn')[0]
closeBtn.addEventListener('click', closeModal)
function closeModal() {
if ($('#checkbox').is(":checked")) {
/*how to perform not to load again the modal???*/
} else {
}
modal.style.display = 'none'
}
}
window.onload = popUp
<div id="LoadModal" class="modal modal-fixed-footer">
<div class="modal-content">
<p>i want to hide this message by checking the check box below</p>
</div>
<div class="modal-footer">
<input type="checkbox" class="filled-in" id="filled-in-box" />
<label for="filled-in-box">Don't show again this button</label>
<a class="closeBtn modal-action modal-close">Continue</a><br><br>
</div>
</div>
解决方案
为此,您可以使用浏览器本地存储。您需要在localStorage
选中复选框时设置一个标志,如果您的 localStorage 中没有该标志,则显示模式。
本地存储通过会话保持不变,如果您只想为当前会话隐藏模式,请使用sessionStorage
function popUp() {
var isModalShown = window.localStorage.getItem('loadModalShown')
if (!isModalShown) {
$("#LoadModal").show()
}
var closeBtn = document.getElementsByClassName('closeBtn')[0]
closeBtn.addEventListener('click', closeModal)
}
function closeModal() {
if ($('#checkbox').is(":checked")) {
window.localStorage.setItem('loadModalShown', true)
}
$("#LoadModal").hide()
}
window.onload = popUp
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="LoadModal" class="modal modal-fixed-footer">
<div class="modal-content">
<p>i want to hide this message by checking the check box below</p>
</div>
<div class="modal-footer">
<input type="checkbox" class="filled-in" id="filled-in-box" />
<label for="filled-in-box">Don't show again this button</label>
<a class="closeBtn modal-action modal-close">Continue</a><br><br>
</div>
</div>
推荐阅读
- asp.net-core - appsettings.json 中的重复元素
- sql - 将 ROWS 拆分为多个 COLUMN
- javascript - 使用 Django 通过 AJAX URL 传递参数
- python - 无法在 virtualenv 中安装 mysqlclient
- java - 这些方法中哪一种更适合将 Spring Boot 应用程序分为三层?
- kdb - 如何高效查询第一行?
- c++ - 在将 [] 运算符用于 unordered_map 时,如果键不存在,如何构造值对象?
- git - 当 .gitmodules 中的分支更改时,Git 子模块拉取更改
- excel - Excel,复杂的条件格式
- python - pyside2 QT 我在填充我的 QListwidget 的图标标签周围有一条虚线,我想摆脱它