如何在单击/接受/确认按钮后不再显示模态
How to NOT show a modal again after a button is clicked/accepted/confirmed?
>我有一个引导模式,需要确认/接受/单击(按钮:#id_complete)才能访问该页面。为了激活按钮,用户需要单击两个复选框。目标是:我希望模式仅在会话中尚未单击/确认/接受#id_complete按钮时才显示。如果单击/确认/接受按钮,则模式不应再次显示。饼干的有效期应为 1 天。我正在使用jquery-cookie-1.4.0
下面的示例仅在第一次访问网站时显示,这不是目标。
<button id="id_complete" type="button" class="btn btn-default" data-dismiss="modal" disabled="disabled">I Accept!</button>
if ($.cookie('pop') == null) {
$('#myModal').modal({
backdrop: 'static'
});
$.cookie('pop', '1');
}
$('#accepted1,#accepted2').click(function () {
if ($('#accepted1:checked,#accepted2:checked').length == 2)
$('#id_complete').removeAttr('disabled');
else
$('#id_complete').attr('disabled','disabled');
});
调用模态函数不会暂停 JavaScript 执行,这意味着 cookie 将立即设置。
若要使 Cookie 在一天后过期,请添加一个expires
属性设置为 1 的对象。
根据您拥有的引导程序版本,侦听模式上的hidden.bs.modal
或hidden
事件,然后设置 cookie:
// Bootstrap <2.3.2
if($.cookie('pop') == null) {
$('#myModal').modal({
backdrop: 'static'
}).on('hidden', function(){
$.cookie('pop', '1', {expires: 1});
});
}
// Bootstrap 3
if($.cookie('pop') == null) {
$('#myModal').modal({
backdrop: 'static'
}).on('hidden.bs.modal', function(){
$.cookie('pop', '1', {expires: 1});
});
}
要回答评论中的问题:
要使其在页面会话后过期,您可以使用 window.sessionStorage 对象并存储上次接受模式的时间:
var lastAccepted = parseInt(sessionStorage.lastAccepted);
// If lastAccepted isn't a number (because it doesn't exist or some other reason)
// or the last acceptance was more than a day ago
if(isNaN(lastAccepted) || Date.now() - lastAccepted > 86400000) {
$('#myModal').modal({
backdrop: 'static'
}).on('hidden.bs.modal', function(){
sessionStorage.lastAccepted = Date.now();
});
}
设置 cookie 的行需要移动按钮的单击处理程序。
在当前位置,如果未找到cookie,无论用户在做什么,都将创建它
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- 如何在单击/接受/确认按钮后不再显示模态
- Firebug不再显示JS错误
- 如何让网页显示一次,并且不再向用户显示
- AJAX 不再在页面上显示任何修改
- 加载时显示消息,例如在 mvc 中加载或不再加载数据
- fullcalendar事件源不再显示事件
- 模式弹出窗口中的DateTimePicker在取消后不再显示
- javascript不再显示登录表单
- 正在寻找与don'“不再显示”复选框
- Don'不再显示此页面(JQUERY cookie)
- Jquery点击事件不'不再显示按钮
- 显示'不再发布帖子'当使用ajax php加载所有帖子时
- 总是显示一个DIV,只要它不再可见后,向下滚动
- Firefox插件图标在Firefox 29更新后不再显示
- 自动关闭后不再显示引导警报对话框
- 谷歌广告不再显示
- 为什么Chrome的控制台不再显示功能代码