Django 如何在几秒钟后消失 bootstrap 警告框消息
Django how to disappeared bootstrap alert box messages after few seconds
在发布这个问题之前,我在 Whosebug 上发现了一些解决方案并尝试过,但没有一个没有奏效。我希望消息在 2 或 3 秒后消失。这是我的代码:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<div class="alert alert-danger" role="alert">
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</div>
</ul>
{% endif %}
看起来像这样:
下面给出了我试过的几个 JavaScript 代码,几秒钟后警告框消失了,但是 none 其中的代码不起作用:
code1:
<script text="javascript">
setTimeout(fade_out, 3000);
function fade_out() {
$(".messages").fadeOut().empty();
}
</script>
code2
<script>
$(document).ready(function() {
// messages timeout for 10 sec
setTimeout(function() {
$('.message').fadeOut('slow');
}, 10000); // <-- time in milliseconds, 1000 = 1 sec
// delete message
$('.alert').live('click',function(){
$('.alert').parent().attr('style', 'display:none;');
})
});
</script>
code3
<script>
setTimeout(function() {
$('.messages').fadeOut('fast');
}, 30000); // <-- time in milliseconds
</script>
code4
<script>setTimeout(function(){$('.messages').fadeOut();}, 15000);</script>
我不明白为什么上面的代码不起作用?我哪里做错了?
代码 2 是正确的,只是您的代码中有错字,请使用 messages
class 而不是 message
class
将此代码放在 </body>
之前
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
// messages timeout for 10 sec
setTimeout(function() {
$('.messages').fadeOut('slow');
}, 10000); // <-- time in milliseconds, 1000 = 1 sec
});
</script>
我自己测试了这段代码,它工作正常
在发布这个问题之前,我在 Whosebug 上发现了一些解决方案并尝试过,但没有一个没有奏效。我希望消息在 2 或 3 秒后消失。这是我的代码:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<div class="alert alert-danger" role="alert">
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</div>
</ul>
{% endif %}
看起来像这样:
下面给出了我试过的几个 JavaScript 代码,几秒钟后警告框消失了,但是 none 其中的代码不起作用:
code1:
<script text="javascript">
setTimeout(fade_out, 3000);
function fade_out() {
$(".messages").fadeOut().empty();
}
</script>
code2
<script>
$(document).ready(function() {
// messages timeout for 10 sec
setTimeout(function() {
$('.message').fadeOut('slow');
}, 10000); // <-- time in milliseconds, 1000 = 1 sec
// delete message
$('.alert').live('click',function(){
$('.alert').parent().attr('style', 'display:none;');
})
});
</script>
code3
<script>
setTimeout(function() {
$('.messages').fadeOut('fast');
}, 30000); // <-- time in milliseconds
</script>
code4
<script>setTimeout(function(){$('.messages').fadeOut();}, 15000);</script>
我不明白为什么上面的代码不起作用?我哪里做错了?
代码 2 是正确的,只是您的代码中有错字,请使用 messages
class 而不是 message
class
将此代码放在 </body>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
// messages timeout for 10 sec
setTimeout(function() {
$('.messages').fadeOut('slow');
}, 10000); // <-- time in milliseconds, 1000 = 1 sec
});
</script>
我自己测试了这段代码,它工作正常