我创建了这个函数来检查用户的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});
}
答案 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。