Bootstrap 4 显示警报

Bootstrap 4 Show Alerts

在 Bootstrap v4 中,如何通过 JavaScript 显示警报?我的目标是在页面加载时隐藏警报,然后在 AJAX 调用完成时打开警报以显示消息。

我在文档中看到警报是如何关闭的,但不知道如何显示它: https://getbootstrap.com/docs/4.0/components/alerts/#methods

我有以下 fiddle 我首先显示警报(不是我想要的)然后按一个按钮将其关闭。那里有第二个按钮可以将其重新打开,但不知道要传递给它什么才能使其工作。我想如果我能让这个示例工作,我就能弄清楚如何让它与页面加载时未显示的警报一起工作

https://jsfiddle.net/jhf2e5h6/

<div class="row">
  <div class="col-sm-12">
     <div id="divInfo" class="alert alert-success show fade ">
        <div class="alert-heading"> :</div> <p></p>
     </div>
 </div>
</div>

<button id="close">Close</button>
<button id="show">Show</button>




<script type="text/javascript">
    $(function () {




        $('#close').on('click', function () {
            $('#divInfo').alert('close');
        });

        $('#Show').on('click', function () {
            $('#divInfo').alert('?????');
        });

        // 
    });


</script>

方法 .alert 破坏了 DOM。所以没有回去的可能。查看文档: https://getbootstrap.com/docs/4.0/components/alerts/#methods

你应该尝试使用 removeClass/addClass。

$('#close').on('click', function () {
    $('#divInfo').removeClass('show');
});

$('#show').on('click', function () {
    $('#divInfo').addClass('show');
});

你在 'Show' 上有误,你应该尝试 'show'。

close 将其从 DOM 中删除,因此无法重新显示。

您可以切换 invisible class...

https://www.codeply.com/go/mbshAxZQMH

 $(function () {
    $('#close').on('click', function () {
        $('#divInfo').addClass('invisible');
    });

    $('#show').on('click', function () {
        $('#divInfo').removeClass('invisible');
    });
});

我更喜欢动态创建警报内容

<div id="alert"></div>

<script type="text/javscript">
function showAlert(obj){
    var html = '<div class="alert alert-' + obj.class + ' alert-dismissible" role="alert">'+
        '   <strong>' + obj.message + '</strong>'+
        '       <button class="close" type="button" data-dismiss="alert" aria-label="Close">'+
        '           <span aria-hidden="true">×</span>'+
        '       </button>'
        '   </div>';

    $('#alert').append(html);
}

 $('#Show').on('click', function () {
    showAlert({message: 'Hello word!', class:"danger"});
 });

Bootstrap 4 有 .d-none,它有 display: none。如果您的警报包含关闭按钮,这会派上用场。

因此,将 .d-none 添加到您的 .alert 元素(例如在页面加载时),然后执行以下操作:

// Show the alert
$('.alert').removeClass('d-none').addClass('show');

// Hide the alert
$('.alert').addClass('d-none').removeClass('show');