首页 > 解决方案 > 触发点击数据目标模态不会触发 show.bs.modal

问题描述

我正在尝试根据 url 中是否存在特定的查询字符串自动打开引导模式。我通过在单击它时通常打开模式的按钮上调用 trigger('click') 来做到这一点:

<a href="" id="openmodal" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Open Modal</a>
$("#openmodal").trigger('click');

模态打开正常,但问题是以下事件通常在打开模态时触发,当通过触发单击打开模态时不再触发:

$(document).on('show.bs.modal', '#myModal', function(e){
    // This does not get fired anymore
});

知道为什么在模态打开按钮上调用 trigger('click') 时不会触发 show.bs.modal 事件吗?

谢谢你的帮助

标签: jquerytwitter-bootstrapbootstrap-4bootstrap-modaleventtrigger

解决方案


您的事件绑定需要在触发代码之前,如下所示:

$(function() {
    // You can also do
    // $('#myModal').on('show.bs.modal', function(e) {
    $(document).on('show.bs.modal', '#myModal', function(e) {
        console.info(e);
    });
    
    $("#openmodal").trigger('click');
});

演示: https ://jsfiddle.net/davidliang2008/g51aLcxr/7/


推荐阅读