我创建了一个带有通知的简单div元素和一个切换元素的关闭按钮
jQuery('.float_close').click(function() {
jQuery('.float_notice').fadeToggle('slow');
使用cookies可能有多难关闭它?
答案 0 :(得分:2)
不那很难,但我建议在http://plugins.jquery.com/cookie/之上使用额外的JavaScript插件(jQuery)。
if ($.cookie('noticeVisibility') !== undefined
&& $.cookie('noticeVisibility') === 'hidden') {
// If a cookie that stores the visibility
// of the notice was set and it says 'hidden', hide the notice
jQuery('.float_notice').hide();
}
jQuery('.float_close').click(function () {
jQuery('.float_notice').fadeToggle('slow');
// Saves a cookie for later
$.cookie('noticeVisibility', 'hidden');
});
答案 1 :(得分:1)
即使用户重新访问该页面,您是否希望模式不再加载曾(或在某个指定的时间范围内)?如果这就是你想要的,那么一个cookie是可以接受的,但并不理想;如果用户禁用了他们的cookie,他们将会连续显示模式 。
如果你想使用一个cookie,你只需在click事件中设置它,并在触发模态之前检查它是否已被设置(或绑定到最终触发模态的事件)。设置cookie非常简单(有关教程和一些功能,请参阅http://www.quirksmode.org/js/cookies.html)。以下cookie将在一小时后过期(直接来自:How to set a cookie to expire in 1 hour in Javascript?)。
var now = new Date();
var time = now.getTime();
time += 3600 * 1000;
now.setTime(time);
document.cookie =
'username=' + value +
'; expires=' + now.toGMTString() +
'; path=/';
如果您希望下次用户访问页面(或刷新页面)时显示模式,您可以将该信息存储在javascript中(或取消绑定触发模态的事件)。只需在你的javascript中设置一个布尔值(注意范围):
var modalDismissed = false;
并在您的点击事件中,将其设置为true:
jQuery('.float_close').click(function() {
jQuery('.float_notice').fadeToggle('slow');
modalDismissed = true;
});
然后在弹出模态之前检查以确保modalDismissed为false:
if (!modalDismissed) {
// modal
}