javascript - 使用 jQuery 在延迟上关闭 Bootstrap 模态
问题描述
我试着:
- 显示模态
- 等待 3 秒
- 隐藏模态
为什么它不起作用?
我的代码:
var $modal = $("#exampleModal");
$modal
.modal("show")
.delay(3000)
.modal("hide")
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet"/>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
我知道“引导模式在 4 秒后关闭或用户单击”问题的答案,但我希望纯 jQuery 解决方案让我的代码更加一致。
UDPATE:我特别想使用 jQuery.delay()
方法。
解决方案
您可以使用 javascript 函数setTimeout()
以您想要的预定义延迟执行隐藏。
注意:我不确定你是否知道 jQuery 是如何.delay
工作的。它仅适用于 jQuery 效果队列,因此非常适合幻灯片和淡入淡出等,但不会延迟某些东西,例如setTimeout
延迟某些东西。
它不能替代 JavaScript 的原生setTimeout
函数。
var $modalDialog = $("#exampleModal");
$modalDialog.modal('show');
setTimeout(function() {
$modalDialog.modal('hide');
}, 3000);
如果你真的想要一些东西,delay
你可以看看使用 Underscore 的_.delay()
功能:
var log = _.bind(console.log, console);
_.delay(log, 1000, 'logged later');
=> 'logged later' // Appears after one second.
很像
setTimeout
,在等待毫秒后调用函数。如果您传递可选参数,它们将在调用时转发给函数。
推荐阅读
- java - 为什么编译器没有给出编译器错误,因为我正在将 int[] 数组与字符串值进行比较?
- node.js - koa-router 和护照链接结果进入回调
- vbscript - VBScript 中的错误处理以检查文件夹中的文件数
- c - 以用户给出的一位数打印所有自恋数字
- javascript - 更新prismjs中剪贴板的内容
- java - 序列化生成的 Avro 类时如何使用 JSON 编码器?
- r - Rcpp:检索和替换方阵的非对角线值
- sql - Postgresql 错误:函数“json_to_recordset(text) 不存在”
- mysql - Eloquent Mysql 时间类型精度
- reactjs - 未捕获(承诺){电子邮件:“电子邮件已存在”}