javascript - 每个域仅运行一次 JS SetTimeout 函数

标签 javascript jquery

我已经在文档就绪的 WordPress 网站上使用 JQuery 实现了启动屏幕。

setTimeout(function() {
  $("#site-overlay").fadeOut();
}, 3000);

好的,叠加层会在 3 秒后淡出。但是,如果我单击菜单按钮,整个页面将重新加载,并且函数 settimeout 会重复,因为它已在文档上准备就绪。

如何在不使用复杂代码的情况下为每个域仅设置一次?

最佳答案

您需要做的是实现 cookie 或类似的东西

我建议https://github.com/yanivkalfa/myCookie这是我自己的图书馆,但还有其他类似的图书馆,因此您可以选择一个。

重点是在 cookie 或 session 中设置一个标志或其他内容,表明您已经完成了所需的操作。

例如:

  // <script .... https://github.com/yanivkalfa/myCookie .. inclode my cookies library

  setTimeout(function() {
    var overlayFlag = $.fn.myCookie({cName: "overlayFlag"});
    if (!overlayFlag) {
      $.fn.myCookie( {cName : "overlayFlag", cVal : true} );
      $("#site-overlay").fadeOut();
    }
  }, 3000);

沿着这些思路,还有其他解决方案..这似乎很简单。

关于javascript - 每个域仅运行一次 JS SetTimeout 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37229362/

相关文章:

javascript - Jquery - IF-ELSE 逻辑不起作用

Javascript 在外部文件中不起作用

jquery - Telerik RadTreeView 不支持 Accordion jquery?

JavaScript 数组到 ColdFusion

javascript - 获得 parent 的第n个 child

使用 Team Foundation Server Build 进行 JavaScript 单元测试

JavaScript - 根据一定的逻辑命名对象属性

javascript - 根据特定类名对元素进行排序

javascript - Nodejs-Mysql : "SyntaxError: Unexpected end of input" if Query Contains 'WHERE'

javascript - 如何在meteorjs中向数据表添加复选框