在页面加载10秒后停止执行此功能

时间:2018-04-09 22:14:46

标签: javascript settimeout

我创建了这个函数来检查用户的cookie,然后显示一个简报Popup。我需要在用户在网站上导航10秒后加载它。我使用window.setTimeout但到目前为止还没有用。除了这10秒延迟执行之外,该脚本的工作非常精彩。知道我做错了吗?

setTimeout(theme.ModalNewsletter, 10000); {
theme.ModalNewsletter = function() 

  if ($.cookie('tada-cookies')) {
  } 
  else {
    var el = $('#newslettermodal');
    if (el.length) {
      $('#newslettermodal').removeClass("hide");
      $.magnificPopup.open({
        items: {
          src: el
        },
        type: 'inline'
      });
    }

  }
  $.cookie('tada-cookies', 'true', { expires: 7});
}

1 个答案:

答案 0 :(得分:2)

在调用setTimeout时,theme.ModalNewsletter仍未定义,因此您使用undefined参数调用setTimeout,您的函数将永远不会被调用。

例如,在此代码段中,只有A将打印到控制台中。

var obj = {
    a: function(){ console.log("A")}
};
window.setTimeout(obj.a, 1000);
window.setTimeout(obj.b, 1000);
obj.b = function(){ console.log("B")};

要解决您的问题,您需要在调用setTimeout之前声明属性ModalNewsLetter。