jQuery:使用fancybox + cookies进行模态窗口加载

时间:2011-03-10 16:40:03

标签: javascript jquery cookies modal-dialog

我有一个我正在使用的脚本加载窗口,设置cookie但是如果用户单击“No Thanks”则窗口不再出现但我希望窗口不会出现,如果他们也点击“参加调查”。我尝试在$('#modal_close, #modal_exit').live('click', function(e) {添加第二个ID,但它不起作用。它没有进入调查链接,而是进入模态发射的页面。任何线索和/或帮助?

$(document).ready(function(){

// MODAL BOX如果请求的cookie没有我想要的值显示模态框

if($.cookie("cookieName") != 'true')
{
    var _message_to_show = 'Window Content Goes Here';

    // on page load show the modal box
    // more info about the options you can find on the fancybox site
    $.fancybox(
        _message_to_show,
        {
            'width'             : 550,
            'height'            : 275,
            'transitionIn'      : 'fade',
            'transitionOut'     : 'fade',
            'centerOnScroll'    : 'true',
            'overlayOpacity'    : 0.8,
            'overlayColor'      : '#000',
            'modal'             : 'true',
    'padding'       : 5
        }
    );

    // in the message is a link with the id "modal_close"
    // when you click on that link the modal will close and the cookie is set to "true"
    // path "/" means it's active for the entire root site.. if you set it to "/admin" will be active on the "admin" folder
    // expires in 7 days
    // "modal" is the name i gave the cookie, you can name it anything you want
    $('#modal_close').live('click', function(e) {
        e.preventDefault();
        $.cookie("cookieName", "true", { path: '/', expires: 7 });    
        $.fancybox.close()
    });
}    

});

1 个答案:

答案 0 :(得分:0)

所以我在帖子发布后就知道了...这不总是这样吗? Anyhoo,对于那些可能想要做同样事情的人,我添加了以下内容:

$('#modal_exit').live('click', function(e) {
    $.cookie("cookieName", "true", { path: '/', expires: 7 });    
    $.fancybox.close()
});

我删除了e.preventDefault();,因为如果触发,点击的锚点将不会将浏览器带到新的URL。删除它允许检查cookie,并让我的链接带我到我想去的地方。