javascript - setTimeout 不适用于 div 加载或锚定
问题描述
尝试在 30 秒后加载 div 并且代码非常简单,理想情况下它应该可以工作。我想在 30 秒后加载 div 内容,所以我试图点击一个虚拟锚点。我知道我们可以在没有虚拟锚的情况下使用 settimeout 直接加载 div,但它不起作用,所以我尝试了触发器。我已经尝试过延迟和所有其他功能。jquery 已经加载。因为当我手动单击它们时,它们会起作用
$(document).ready(function() {
setTimeout(function() {
$('#999').trigger('click');
}, 5000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#popup_chrome" class="popup_chrome" id="999">Chrome Extension</a>
<div id="popup_chrome" class="overlay">
<div class="popup">
<h2>Download Chrome Extension</h2><br>
<a class="close" href="#">×</a>
<div class="content">
<br /><a href="dfdfd" target="_blank" class="myButton_sub">Download</a>
</div>
</div>
</div>
解决方案
使用模板来保存弹出窗口,然后在超时时使用模板内容填充一些容器:
$(document).ready(function() {
setTimeout(function() {
$('#container').html($('#popup_content').html());
}, 4000);
});
#popup_chrome {
margin: 15px;
width: 50vw;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
border: 1px solid silver;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h5>Wait for it...</h5>
<div id="container"></div>
<template id="popup_content">
<div id="popup_chrome" class="overlay">
<div class="popup">
<h2>Download Chrome Extension</h2><br>
<a class="close" href="#">×</a>
<div class="content">
<br /><a href="dfdfd" target="_blank" class="myButton_sub">Download</a>
</div>
</div>
</div>
</template>
推荐阅读
- excel - csv文件中的额外引号
- java - 使用 Spring JPA 休眠的性能
- angular - 如何在 Angular 中使用谷歌距离矩阵 API
- javascript - laravel vue选择选择的选项不显示值
- ios - xcode 10b6 结构缺少或格式错误的配置文件
- sql - 无法将日期时间纪元转换为仅日期纪元格式
- html - 如何在Wordpress中为所有帖子设置锚标签的默认标题
- graphite - Graphite 的磁盘空间、CPU 和/或内存监控配置示例
- python - 将列表元素与字典值匹配
- bash - shell脚本中的“for i”和“for i in 1 2 3 4”有什么区别?