【发布时间】:2019-03-07 14:00:56
【问题描述】:
我有一个引导模式 v3.2.0,它会在页面加载时显示。它被用作年龄验证弹出窗口。
我正在寻找一种在满足条件时关闭此模式的方法。基本上,当用户单击一个按钮时,我希望它关闭,但我也想确保在单击该按钮后,模式不会再次出现在页面加载中。
这里是代码
$(window).load(function(){
$('#myModal').modal('show')
});
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p>Some text in the modal.</p>
</div>
<div class="modal-footer">
<button id="footer-close" type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
此代码可在页面加载时成功加载引导模式,并在您单击关闭按钮时关闭模式,但模式仍会在页面加载时再次出现。由于我对 Javascript 不是很擅长,我不确定如何处理条件语句或 if 语句。到目前为止,我已经有了基本的骨架:
if (condition) {
$("#myModal").modal('hide');
} else {
// block of code to be executed if the condition is false
}
如果单击了关闭按钮,则应该在原始 if 语句中。它还应该防止模态再次自动加载。也许我什至不需要 else 语句。
他们甚至可能是我没有考虑过的更好的选择。非常感谢任何帮助。
$('#myModal').modal('show')
$('#over18').on('click', function (e) {
$('#myModal').modal('hide')
});
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a href="https://google.co.uk" class="close" role="button"><span aria-hidden="true">×</span><span class="sr-only">Close</span></a>
<img class="img-responsive" style="margin:0 auto;" src="//cdn.shopify.com/s/files/1/0078/4449/5437/files/Flavour_Vapour_Icon_300x300.png?v=1550053751" alt="">
</div>
<div class="modal-body">
<p class="modal-p">You must be at least 18 years old to enter this site.</p>
</div>
<div class="modal-footer">
<button type="button" id="over18" class="btn btn-default">I am 18 or older</button>
<a href="https://google.co.uk" id="under18" class="btn btn-danger" role="button">I am under 18</a>
</div>
</div>
</div>
</div>
为了更加清楚,如果我使用以下代码,当您单击按钮时它会显示警报,因此 javascript 和代码正在为此工作,使用引导程序时它根本不起作用:$('# myModal').modal('隐藏');
$('#over18').on('click', function () {
alert('Hello!');
});
所以在玩了一些之后,下面的代码会自动打开模态框,当点击 18 岁以上的按钮时它会关闭,并且会出现一个警报,说模态框即将被隐藏。我这样做是为了确保 javascript 工作正常。
调用警报的行是我应该放置 localstorage 行以确保模态不再显示的位置。但是,这不起作用。
$("#myModal").modal("show");
$("#over18").click(function(){
$("#myModal").modal("hide");
});
$("#myModal").on('hide.bs.modal', function(){
alert('The modal is about to be hidden.');
});
【问题讨论】:
-
使用localStorage 存储您的条件
-
谢谢 urbz。一旦我知道要使用什么条件,我计划将条件存储在本地。大声笑。
标签: javascript jquery twitter-bootstrap twitter-bootstrap-3 bootstrap-modal