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

时间:2019-09-09 13:55:11

标签: javascript jquery

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

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');
  }
}

1 个答案:

答案 0 :(得分:5)

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

docs的提示:

  

.delay()方法最适合在排队的jQuery效果之间进行延迟。由于它是有限的(例如,它没有提供消除延迟的方法)。.delay()不能替代JavaScript的本机setTimeout函数,该函数可能更适合某些用例。

您只需使用

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