我在我的一个项目中使用bootstrap模式。我正在使用计时器功能自动显示引导模式。
如果用户没有关闭bootstrap模态一分钟。然后它自动需要关闭bootstrap模式。
如何设置自动关闭引导模式的计时器?
请帮助我解决这个问题。
提前致谢:)
var mins;
var secs;
function cd() {
mins = 1 * m("");
secs = 0 + s(":"); // change seconds here (always add an additional second to your total)
console.log(mins);
console.log(secs);
redo();
}
function m(obj) {
for(var i = 0; i ";
if(mins :";
disp += "";
if(secs ";
return(disp);
}
function redo() {
secs--;
if(secs == -1) {
secs = 59;
mins--;
}
$('#myModal').on('shown', function() {
// remove previous timeouts if it's opened more than once.
clearTimeout(myModalTimeout);
// hide it after a minute
myModalTimeout = setTimeout(function() {
$('#myModal').modal('hide');
}, 5000);
});
document.getElementById('timer_container').innerHTML = dis(mins,secs);
if((mins == 1) && (secs == 45)) {
$("#myModal").modal('show');
$('#myModal').on('shown', function() {
// remove previous timeouts if it's opened more than once.
clearTimeout(myModalTimeout);
// hide it after a minute
myModalTimeout = setTimeout(function() {
$('#myModal').modal('hide');
}, 5000);
});
$('.timer-inc').click(function(){
$("#myModal").modal('hide');
href="includes/setSessionTime.php";
$.ajax({
type: "POST",
//data : {cat:"hai"},
cache: false,
url: href,
success: function(data){
console.log(data);
$("#results").html(data);
}
});
});
$('.timer-close').click(function(){
$("#myModal").modal('hide');
href="includes/clearcart.php";
$.ajax({
type: "POST",
//data : {cat:"hai"},
cache: false,
url: href,
success: function(data){
console.log(data);
$("#results").html(data);
}
});
});
$('#myModal').on('hidden', function () {
href="includes/clearcart.php";
$.ajax({
type: "POST",
//data : {cat:"hai"},
cache: false,
url: href,
success: function(data){
console.log(data);
$("#results").html(data);
}
});
});
}
else if((mins == 0) && (secs == 00)){
$("#myModal").modal('hide');
href="includes/clearcart.php";
$.ajax({
type: "POST",
//data : {cat:"hai"},
cache: false,
url: href,
success: function(data){
console.log(data);
$("#results").html(data);
}
});
}
else {
cd = setTimeout("redo()",1000);
}
}
function init() {
cd();
}
答案 0 :(得分:12)
尝试
var myModal = $('#myModal').on('shown', function () {
clearTimeout(myModal.data('hideInteval'))
var id = setTimeout(function(){
myModal.modal('hide');
});
myModal.data('hideInteval', id);
})
答案 1 :(得分:6)
您可以将setTimeout
与显示的回调结合使用。
$('#myModal').on('shown', function() {
// remove previous timeouts if it's opened more than once.
clearTimeout(myModalTimeout);
// hide it after a minute
myModalTimeout = setTimeout(function() {
$('#myModal').modal('hide');
}, 6e4);
});
答案 2 :(得分:2)
功能定义
function show_modal(){
$('#myModal').modal('show');
}
function hide_modal(){
$('#myModal').modal('hide');
}
装载
$(window).load(function(){
$('#myModal').modal('show');
window.setTimeout(hide_modal, 60000);
});
答案 3 :(得分:1)
您可以将其用作:
setTimeout(function(){$('#myModal').modal('hide')},3000);
答案 4 :(得分:0)
试试这个,$('#someselector')。modal({show:false})
答案 5 :(得分:0)
我正在使用此方法(bootstrap 3.2.0及更高版本):
添加'模态自动清除'到你想要自动关闭的每个模态的模态类。
<div class="modal fade modal-auto-clear" id="modal_confirmation" tabindex="-1" role="dialog">
...
</div>
在jQuery中:
$('.modal-auto-clear').on('shown.bs.modal', function () {
$(this).delay(7000).fadeOut(200, function () {
$(this).modal('hide');
});
})
所有带有类&#39;模态自动清除的模态&#39;现在它们打开后会关闭7秒(你可以在jquery代码中改变这个时间)。
如果您想为每个模态创建不同的自动关闭时间,可以执行以下操作:
添加课程&#39;模态 - 自动清除&#39;到modals类并添加属性data-timer =&#34; 3000&#34;到模态div:
<div class="modal fade modal-auto-clear" data-timer="3000" id="modal_confirmation" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Your title</h4>
</div>
<div class="modal-body padded">Your body</div>
<div class="modal-footer">
<button type="button" id="close" data-dismiss="modal" aria-label="Close" class="btn btn-primary" style="display:none;">Close</button>
</div>
</div>
</div>
</div>
在jQuery中:
$('.modal-auto-clear').on('shown.bs.modal', function () {
// if data-timer attribute is set use that, otherwise use default (7000)
var timer = $(this).data('timer') ? $(this).data('timer') : 7000;
$(this).delay(timer).fadeOut(200, function () {
$(this).modal('hide');
});
})
答案 6 :(得分:0)
容易..! :D试试这个男人!相信我。
$(window).load(function(){
setTimeout(function(){
$('#myModal').hide();
}, 60000);
});