Modal正在使用bootstrap4 alpha6模式转换错误

时间:2017-04-06 22:19:47

标签: javascript jquery modal-dialog bootstrap-4

我正在使用bootstrap4 alpha 6 Modal,我得到了:

Error: Modal is transitioning

当我尝试通过JavaScript函数再次使用动态数据重新触发相同的模式时会发生这种情况,如下所示:

function openModal(title, text) {
    $('.modal-title').text(title);
    $('.modal-body p').text(text);
    $('#modalAlert').modal('show');
}

我尝试使用setTimeout函数,但没有像本文那样工作: https://github.com/twbs/bootstrap/issues/21687

有什么建议吗?

6 个答案:

答案 0 :(得分:7)

最快的解决方案是删除模式' fade'抛出这个错误的类。这似乎是Bootsrap v6的一个已知问题,将在下一次发布时修复。

请参阅here

答案 1 :(得分:2)

从父div类中删除fade

最终模态代码(此处为后代添加):

HTML

<div class="modal loadingModal" id="applemodal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"  aria-hidden="true">
          <div class="modal-dialog" role="document">
              <div class="modal-body">
                <div class="row">
                    <div class="col-md-6">
                    </div>
                    <div class="col-md-6">
                        <img src="ico/4.svg">
                    </div>
                </div>
              </div>
          </div>
    </div>

JS

$.ajax({
        type: "GET",
        url: "/getTimeline",
        data: {
            'dateTime': selected
        },
        async: true,
        beforeSend: function () {
              $('#applemodal').modal({
                  backdrop: 'static',
                  keyboard: false
              });
        },
        success: function(data) {
            $('#applemodal').modal('toggle');
       }
});

答案 2 :(得分:0)

我正在使用bootstrap 4 Modal,我的解决方案;

    $(document).on('show.bs.modal', '.modal', function (event) {
        var zIndex = 1040 + (10 * $('.modal:visible').length);
        $(this).css('z-index', zIndex);
        setTimeout(function() {
            $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
        }, 0);
    });

答案 3 :(得分:0)

首先打开模态,然后尝试找到模态内部的DOM元素(例如$('.modal-title')$('.modal-body p')

更改执行功能的顺序可能有效:

function openModal(title, text) {
  $('#modalAlert').modal('show'); 
  $('.modal-title').text(title);
  $('.modal-body p').text(text);
}

最后,当您访问模式中的HTML时,请确保在屏幕中打开/显示模态。

答案 4 :(得分:0)

请将您的按钮类型='submit'设置为type ='button'

答案 5 :(得分:-1)

我的解决方案是以编程方式而不是通过链接打开模型。

而不是:

<A href="javascript: void(0);" data-toggle="modal" data-target="#myModal" title="Open My Modal">Open My Modal</A>

使用:

<A href="javascript: void(0);" ID="myLink" title="Open My Modal">Open My Modal</A>

$('#myLink').on('click', function(){ 
    $('#myModal').modal('show');
})