【发布时间】:2019-03-27 00:38:21
【问题描述】:
我正在尝试使用 cookie 每天显示一次弹出窗口,但它不起作用。这是 html、css 和 js:
function showpopup() {
var id = '#dialog';
var maskHeight = $(document).height();
var maskWidth = $(window).width();
$('#mask').css({
'width': maskWidth,
'height': maskHeight
});
$('#mask').fadeIn(500);
$('#mask').fadeTo("slow", 0.9);
var winH = $(window).height();
var winW = $(window).width();
$(id).css('top', winH / 2 - $(id).height() / 2);
$(id).css('left', winW / 2 - $(id).width() / 2);
$(id).fadeIn(2000);
$('.window .close').click(function(e) {
e.preventDefault();
$('#mask').hide();
$('.window').hide();
});
$('#mask').click(function() {
$(this).hide();
$('.window').hide();
});
}
$(function() {
if ($.cookie('alreadyShow') === null) {
$.cookie('alreadyShow', true, {
expires: 1
});
showpopup();
}
});
#mask {
position: absolute;
left: 0;
top: 0;
z-index: 9000;
background-color: #26262c;
display: none;
}
#boxes .window {
position: absolute;
left: 0;
top: 0;
width: 440px;
height: 850px;
display: none;
z-index: 9999;
padding: 20px;
border-radius: 5px;
text-align: center;
}
#boxes #dialog {
width: 450px;
height: auto;
padding: 10px 10px 10px 10px;
background-color: #ffffff;
font-size: 15pt;
}
.agree:hover {
background-color: #D1D1D1;
}
.popupoption:hover {
background-color: #D1D1D1;
color: green;
}
.popupoption2:hover {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://lab.alexcican.com/set_cookies/cookie.js"></script>
<div id="boxes">
<div style="top: 50%; left: 50%; display: none;" id="dialog" class="window">
<div id="san">
<a href="#" class="close agree">
<img src="https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-close-512.png" width="25" style="float:right; margin-right: -10px; margin-top: -10px;" alt="" />
</a>
<br><br> Visit our new website: <a style="color:blue" target="_blank" href="www.example.come">Example.com</a>.
</div>
</div>
<div id="mask"> </div>
</div>
【问题讨论】:
-
您在第一个
<script的末尾缺少一个>。是真实代码中的拼写错误,还是只是复制错误? -
您已经声明了检查 cookie 的函数,但它从未被调用过。尝试在 showPopup 函数中移动 cookie 条件检查作为其在函数中的初始验证。因此,您将首先检查 cookie 是否存在,如果不存在,则设置 cookie 值并继续显示弹出窗口。另一种选择是给这个其他函数一个名称,并实际从 Div 而不是 showPopup() 调用这个函数
-
@adityap - 我认为您没有正确遵循代码,因为它完全按照您的建议执行。如果没有 cookie,则从 IIFE 内部调用
showpopup()。 -
@David - 你是对的,对此感到抱歉。请忽略我的cmets
-
谢谢,请问有什么办法解决吗?
标签: javascript jquery cookies popup