我创建了这个函数来检查用户的cookie,然后显示一个时事通讯弹出窗口。我需要加载后,用户花了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});
}
发布于 2018-04-10 06:27:32
在调用setTimeout的时候,theme.ModalNewsletter仍然是未定义的,所以你调用setTimeout时的参数是undefined,你的函数将永远不会被调用。
例如,在此代码段中,只有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。
https://stackoverflow.com/questions/49742472
复制相似问题