我试图在用户点击触发按钮后延迟显示Bootstrap模式:
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
查看Bootstrap 3文档,我可以看到有一个show
事件可以挂钩但不确定如何在模式出现在屏幕上之前引入3秒延迟。希望有人能帮忙吗?
答案 0 :(得分:7)
您可以延迟点击触发按钮,然后直接激活模态:
$('[data-toggle=modal]').on('click', function (e) {
var $target = $($(this).data('target'));
$target.data('triggered',true);
setTimeout(function() {
if ($target.data('triggered')) {
$target.modal('show')
.data('triggered',false); // prevents multiple clicks from reopening
};
}, 3000); // milliseconds
return false;
});
答案 1 :(得分:5)
使用.on()
挂钩事件:
var isFirstShowCall = false;
$('#myModal').on('show.bs.modal', function (e) {
isFirstShowCall = !isFirstShowCall; // Prevents an endless recursive call
if(isFirstShowCall) {
e.preventDefault(); // Prevent immediate opening
window.setTimeout(function(){
$('#myModal').modal('show');
}, 3000)
}
});
答案 2 :(得分:1)
window.setTimeout(function() {
$('#myModal').modal('show');
}, 5000)
对于演示,我使用了5000迷你秒。您可以根据需要使用它......
答案 3 :(得分:0)
如果以上任何方法都不起作用,请尝试此方法。它将完美运行。
$(window).ready(function() {
setTimeout(function(){
$('#myModal').modal('show');
}, 2000);
});