You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Bootstrap4升级为Bootstrap5后点击关闭按钮无法关闭模态框求助

解决思路

  • 替换关闭按钮的触发属性
    Bootstrap 5将所有内置数据属性的前缀从data-调整为data-bs-,v4版本可用的data-dismiss="modal"在v5中已失效,需要修改为data-bs-dismiss="modal"。首先补全你未闭合的关闭按钮标签,加上对应属性即可:
<input type="button" id="btnClosePopup" value="Close" class="btn btn-danger" data-bs-dismiss="modal">

如果你的关闭按钮是放在Ajax返回的动态内容中,需要修改服务端返回的模板代码,给按钮加上上述属性。

  • 调整脚本加载顺序
    如果仍要使用jQuery调用modal()方法控制模态框,必须保证加载顺序为「先加载jQuery,再加载bootstrap.bundle.min.js」,顺序错误会导致jQuery的模态框扩展方法绑定失败。

  • 改用Bootstrap 5原生API控制模态框(更稳定)
    Bootstrap 5默认不依赖jQuery,用原生JS API控制模态框可以避免兼容问题,修改后的逻辑如下:

// 全局存储模态框实例,避免重复初始化
let userModal = null;
function get_user_details(user_id)
{
    parameters="user_id="+user_id;
    $.ajax({
        type: "POST",
        url: "<?php echo site_url('hungry/get_modal_view_tree_member_data'); ?>",
        data: parameters,
        cache: false,
        success:function(data)
        {
            $("#UserModalContent").html(data);
            // 实例不存在则先初始化
            if(!userModal) {
                userModal = new bootstrap.Modal(document.getElementById('MyPopup'));
                // 绑定关闭按钮事件,双重保障
                document.getElementById('btnClosePopup').addEventListener('click', () => {
                    userModal.hide();
                })
            }
            userModal.show();
        }
    });
}
  • 补全模态框的标准属性
    Bootstrap 5对模态框结构校验更严格,给外层模态框容器补充标准属性避免功能异常:
<div id="MyPopup" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">

内容的提问来源于stack exchange,提问作者Eng Keat Ang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:21:00