javascript - 我怎样才能做一个只运行一次的javascript

标签 javascript jquery

我有这个 jquery 代码:

$(document).ready(function(){
  $(".body").hide();

  setTimeout(function() {
    $(".body").show()
  }, 2000);

  setTimeout(function() {
    $(".img").fadeOut(1000)
  }, 1000);
});

而且我希望它仅在首次单击该页面时才起作用。因此,当您重新加载页面或浏览站点并导航回该站点时,上面的脚本将不会执行。

最佳答案

您可以使用 localStorage 在浏览器级别存储值,这样下次用户访问您的网站时,他们将获得相同的数据。如果您在他们访问您的网站时设置一个标志,那么您可以知道他们第一次访问的时间,因为该标志未设置。

这是添加到您的代码中的更改以及相应的注释...

$(document).ready(function(){

    // check localStorage to see if we've run this before.  If we have then do nothing
    if (!localStorage.getItem("first-run")) {

        // set a flag in localStorage so we know we've run this before.
        localStorage.setItem("first-run", true);

        $(".body").hide();

        setTimeout(function() {
            $(".body").show()
        }, 2000);

        setTimeout(function() {
            $(".img").fadeOut(1000)
        }, 1000);
    }
});

关于javascript - 我怎样才能做一个只运行一次的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48386282/

相关文章:

javascript - 为什么 typescript 在 useState React 上抛出错误

javascript - 使用 PushID 的 Firebase 事务

javascript - 为什么这个 javascript 正则表达式无法匹配 2 个连续字符?

jquery - 同时使用2个变量

javascript - Bootstrap 日期选择器不关闭

jquery - 在不同项目中通过 AJAX 调用使用 jQuery 中的 WCF 服务(跨域)

javascript - 在多页中打印大型 SVG (A4)

当我只更新该数组的一个索引时,javascript数组的两个索引值都会更新

javascript - 无论输入如何,函数都返回 true

javascript - 多个元素的 jQuery 隐藏元素问题