javascript - 为什么 delay() 方法在会话存储中不起作用?
问题描述
我想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');
}
}
解决方案
这与会话存储无关,完全取决于您调用的方法delay
;addClass
未添加到任何队列中。
文档暗示了这一点:
.delay() 方法最适合在排队的 jQuery 效果之间进行延迟。因为它是有限的——例如,它不提供取消延迟的方法——.delay() 不能替代 JavaScript 的本机 setTimeout 函数,这可能更适合某些用例。
在您的情况下,只需使用
setTimeout(function(){
$('body.home, body.page-template-page-services').addClass('is-visible');
},10000);
推荐阅读
- laravel - Laravel,迁移关系在某个时间结束
- javascript - 如何在模式中显示动态内容?
- python - 从一些 HTML 标签中提取文本
- postgresql - PostgreSQL 在多大程度上支持并行 DDL?
- java - 更新值为 List 的 HashMap 的条目
- c++ - 当统一块大小很小时,是否应该在 glUniform 上使用统一缓冲区对象?
- javascript - 允许和允许之间的 JavaScript 差异的 Google Chrome 权限设置(默认)
- python - 在 Python Plotly 中将数据点名称写入数据点的正上方
- linux - Apache 重写规则 .HTACCESS 文件
- google-app-engine - 每个 F1 实例的 App Engine 兆周期/秒