私の必要性は私がAdd to Wishlistボタンをクリックしたときにアラートを呼び出すことで、2秒以内にアラートを消すべきです。これが私が試した方法ですが、アラートは表示されるとすぐに消えます。よくわかりませんが、バグの原因はどこにありますか。
JSスクリプト
$(document).ready (function(){
$("#success-alert").hide();
$("#myWish").click(function showAlert() {
$("#success-alert").alert();
window.setTimeout(function () {
$("#success-alert").alert('close'); }, 2000);
});
});
HTMLコード:
<div class="product-options">
<a id="myWish" href="" class="btn btn-mini" >Add to Wishlist </a>
<a href="#" class="btn btn-mini"> Purchase </a>
</div>
アラートボックス:
<div class="alert alert-success" id="success-alert">
<button type="button" class="close" data-dismiss="alert">x</button>
<strong>Success! </strong>
Product have added to your wishlist.
</div>
スムーズなスライドアップのために:
$("#success-alert").fadeTo(2000, 500).slideUp(500, function(){
$("#success-alert").slideUp(500);
});
$(document).ready(function() {
$("#success-alert").hide();
$("#myWish").click(function showAlert() {
$("#success-alert").fadeTo(2000, 500).slideUp(500, function() {
$("#success-alert").slideUp(500);
});
});
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div class="product-options">
<a id="myWish" href="javascript:;" class="btn btn-mini">Add to Wishlist </a>
<a href="" class="btn btn-mini"> Purchase </a>
</div>
<div class="alert alert-success" id="success-alert">
<button type="button" class="close" data-dismiss="alert">x</button>
<strong>Success! </strong> Product have added to your wishlist.
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
"Can Can Has Kittenz"のコードで2秒で500の不透明度にフェードインするfadeTo()
を使用すると、私には判読できません。 delay()のような他のオプションを使った方が良いと思います
$(".alert").delay(4000).slideUp(200, function() {
$(this).alert('close');
});
他のすべての答えがslideUp
を使う理由は、私を超えています。 fade
クラスとin
クラスを使用して、閉じたとき(またはタイムアウトしたとき)に警告を消すようにしているので、「スライドアップ」してそれと競合しないようにします。
slideUp
メソッド以外にはうまくいきませんでした。警告自体はまったく表示されませんでした。これが私にとって完璧に機能したものです。
$(document).ready(function() {
// show the alert
setTimeout(function() {
$(".alert").alert('close');
}, 2000);
});
私はこれがより良い解決策であることがわかりました
$(".alert-dismissible").fadeTo(2000, 500).slideUp(500, function(){
$(".alert-dismissible").alert('close');
});
この問題に対するもう1つの解決策5秒後にブートストラップ警告メッセージを自動的に閉じるか消す:
これはメッセージを表示するために使用されるHTMLコードです。
<div class="alert alert-danger">
This is an example message...
</div>
JSスニペット
<script type="text/javascript">
$(document).ready(function () {
window.setTimeout(function() {
$(".alert").fadeTo(1000, 0).slideUp(1000, function(){
$(this).remove();
});
}, 5000);
});
</script>
$("#success-alert").fadeTo(2000, 500).slideUp(500, function(){
$("#success-alert").alert('close');
});
FadeToパラメータがfadeTo(スピード、不透明度)の場合
必要なときに自動的にそして手動でTiggers
$(function () {
TriggerAlertClose();
});
function TriggerAlertClose() {
window.setTimeout(function () {
$(".alert").fadeTo(1000, 0).slideUp(1000, function () {
$(this).remove();
});
}, 5000);
}