jQuery关闭Div Window + cookie

时间:2013-08-01 01:45:05

标签: javascript jquery

我创建了一个带有通知的简单div元素和一个切换元素的关闭按钮

jQuery('.float_close').click(function() {
                jQuery('.float_notice').fadeToggle('slow');

modal

使用cookies可能有多难关闭它?

2 个答案:

答案 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
}