【问题标题】:Fancybox Modal with jquery cookie to open once on page load带有 jquery cookie 的 Fancybox Modal 在页面加载时打开一次
【发布时间】:2017-04-19 11:47:47
【问题描述】:

我有一个在 fancybox 中打开的模式。我可以通过单击带有 jquery 的打开模式按钮来在页面加载时触发此模式:

$("#download-brochure-button").fancybox().trigger('click');

我正在尝试设置一个 cookie,以便每个会话仅打开一次。我正在查看应用程序选项卡下的 chrome 检查器,但看不到正在生成任何 cookie。我正在使用jQuery Cookie 处理cookie,但我一定是做错了什么。这是我的js:

//Brochure Modal with cookie
$(document).ready(function(){
    var check_cookie = $.cookie('brochure_modal_cookie');
    if(check_cookie === null){
        $.cookie('brochure_modal_cookie', 'value', { expires: 7 });
        $("#download-brochure-button").fancybox().trigger('click');
   }
});

目前没有模态显示,也看不到 cookie。非常感谢任何和所有帮助。

【问题讨论】:

  • 您是否选择Application标签下的Cookies子标签来验证?另外,试试console.log(check_cookie) 看看你实际得到了什么!
  • console.log(check_cookie) 给我未定义,我认为这与 null 相同?我还尝试通过添加 Cookies.set('name', 'value'); 在文档之后简单地设置一个 cookie;我在控制台中收到“未定义 Cookie”错误。这表明 jquery 插件没有加载,但我一次又一次地检查了加载路径,它是正确的。还有什么想法吗?
  • 你是否在同一路径下的源代码中看到了 Jquery 插件?在调用它的方法之前是否加载了相同的内容?

标签: javascript jquery cookies fancybox jquery-cookie


【解决方案1】:

我使用更新的https://github.com/js-cookie/js-cookie 插件解决了这个问题。

我的工作代码:

//Brochure Modal with cookie
Cookie = Cookies.get('brochure_modal_cookie');
if (Cookie == null) {
    $("#download-brochure-button").fancybox().trigger('click');
    Cookies.set('brochure_modal_cookie', 'value', { expires: 7 });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多