【问题标题】:execute javascript function after 5 seconds [duplicate]5秒后执行javascript函数[重复]
【发布时间】:2015-06-22 21:47:37
【问题描述】:

我有这个功能,我想在5秒后执行:

$(document).ready(function() {
   $("#signInButton").trigger('click');

  });

谢谢

【问题讨论】:

    标签: javascript jquery html ajax click


    【解决方案1】:

    使用setTimeout()函数:

    $(document).ready(function() {
      setTimeout(function() {
        $("#signInButton").trigger('click');
      }, 5000);
    });
    

    【讨论】:

    • 谢谢我有一条评论,除了在 5 秒后加载之外,我将如何工作以使其每 2 小时而不是每页加载一个。截至目前,模式每页面加载的时间,但我想每 2 小时加载一次该页面,所以如果我现在加载页面,我会看到它,但如果我在 10 分钟后加载它,我看不到它,但如果加载此页面2 小时后我再次看到它或每个浏览器会话
    • 您可能可以使用 cookie (w3schools.com/js/js_cookies.asp) 实现这一目标。将服务器 dateTime 存储在 cookie 中,并在每次加载页面时比较上次保存的 dateTime。如果新的 dateTime 相差超过 2 小时,请执行您的函数。
    【解决方案2】:
    $(document).ready(function() {
        setTimeout(function() {
            $("#signInButton").trigger('click');
        }, 5000);
    });
    

    【讨论】:

    • 您可能想描述一下为什么这是正确答案。
    • 谢谢我有一条评论,除了在 5 秒后加载之外,我将如何工作以使其每 2 小时而不是每页加载一个。截至目前,模式每页面加载的时间,但我想每 2 小时加载一次该页面,所以如果我现在加载页面,我会看到它,但如果我在 10 分钟后加载它,我看不到它,但如果加载此页面2 小时后我再次看到它或每个浏览器会话
    【解决方案3】:

    这样的?

    $(document).ready(function() {
      setTimeout(function() { 
        $("#signInButton").trigger('click');
      }, 5000);
    
      $("#signInButton").click(function(){
        alert("I'm clicked!");
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="button" id="signInButton" value="Click Me" />

    详细了解 window 的 setTimeOut 方法

    【讨论】:

    • 谢谢我有一条评论,除了在 5 秒后加载之外,我将如何工作以使其每 2 小时而不是每页加载一个。截至目前,模式每页面加载的时间,但我想每 2 小时加载一次该页面,所以如果我现在加载页面,我会看到它,但如果我在 10 分钟后加载它,我看不到它,但如果加载此页面2 小时后我再次看到它或每个浏览器会话
    • @JonathanEtienne,您需要详细描述您想要实现的目标,您可以使用setInterval(),它会定期调用您的函数,即每 10 分钟或其他时间调用一次,但您所要求的方式就像每 2 小时它应该调用一些函数一样,我认为使用 JavaScript 不是很好,因为在该时间间隔之间,如果用户刷新页面,那么您的脚本将被重置。在此处阅读有关 setInterval() 的更多信息,w3schools.com/jsref/met_win_setinterval.asp
    【解决方案4】:

    使用setTimeout()

    $(document).ready(function() {
      setTimeout(function() { 
        $("#signInButton").trigger('click');
      }, 5000); // for 5 second delay 
    });
    

    【讨论】:

    • @JonathanEtienne - 看到答案 - 你必须使用 SetTimeout()
    • 谢谢我有一条评论,除了在 5 秒后加载之外,我将如何工作以使其每 2 小时而不是每页加载一个。截至目前,模式每页面加载的时间,但我想每 2 小时加载一次该页面,所以如果我现在加载页面,我会看到它,但如果我在 10 分钟后加载它,我看不到它,但如果加载此页面2 小时后我再次看到它或每个浏览器会话
    猜你喜欢
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2013-11-15
    • 2011-11-03
    • 2018-11-05
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多