为什么 delay() 方法在会话存储中不起作用?



我想在一段时间后添加一个class。 但延迟方法在会话存储中不起作用。我不知道为什么它不起作用。

window.onload = function() {
if (sessionStorage.getItem(".bts-popup") != 'true') {
$('body.home, body.page-template-page-services').delay(10000).addClass('is-visible');
sessionStorage.setItem('.bts-popup', 'true');
}
}

这与会话存储无关,这完全是由于您在delay之后调用的方法;addClass不会添加到任何队列中。

文档暗示了这一点:

.delay(( 方法最适合在排队的 jQuery 效果之间延迟。因为它是有限的——例如,它不提供取消延迟的方法——.delay(( 不能替代 JavaScript 的原生 setTimeout 函数,后者可能更适合某些用例。

在您的情况下,只需使用

setTimeout(function(){
$('body.home, body.page-template-page-services').addClass('is-visible');
},10000);

最新更新