升级Bootstrap 5与jQuery 3后ASP.NET Core模态框无法触发
升级jQuery和Bootstrap后部分页面模态框无法触发的问题
在ASP.NET Core项目中,将jQuery从v2.2.4升级至v3.7.1、Bootstrap从v2.2.2升级至v5.0.2后,遇到了部分页面按钮点击无法触发模态框弹窗的问题,但其他页面配置完全相同的模态框却能正常运行。已通过控制台日志及其他功能确认jQuery与Bootstrap均加载正常:

无法触发模态框的代码示例
<a class="btn btn-sm" data-bs-toggle="modal" data-bs-target="#userSyncConfigHelp">Help</a> <div style="display: none;" class="modal biggerModal" id="userSyncConfigHelp" tabindex="-1" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true">×</button> <h3 class="modal-title">User Sync Config Help</h3> </div> <div class="modal-body"> <p>Hello World</p> </div> <div class="modal-footer"> <button type="button" class="btn" data-bs-dismiss="modal">Close</button> </div> </div> </div> </div>
点击上述"Help"按钮无任何反应;若改用Bootstrap文档中的如下写法:
<a class="btn btn-primary" data-bs-toggle="modal" href="#exampleModalToggle" role="button">Open first modal</a>
仅会将模态框ID追加到URL中(例如URL变为xxx#userSyncConfigSampleAzureAD),仍无法弹出模态框。
可正常运行的代码示例
其他页面中类似配置的模态框可正常触发,代码如下:
<a class="btn btn-small" data-bs-toggle="modal" data-bs-target="#snippetHotKeysHelp">Help</a> <div style="display: none;" class="modal biggerModal" id="snippetHotKeysHelp" tabindex="-1" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true">×</button> <h3 class="modal-title">Snippet Hotkeys Help</h3> </div> <div class="modal-body"> <p>Hello World</p> </div> <div class="modal-footer"> <button type="button" class="btn" data-bs-dismiss="modal">Close</button> </div> </div> </div> </div>
问题排查更新
在能正常运行的页面控制台输入bootstrap,可返回Bootstrap对象;但在有问题的页面执行同样操作,会返回ReferenceError错误。
怀疑问题与Bootstrap JavaScript和新版jQuery的交互方式有关,或是特定页面的配置问题。请问有没有人遇到过类似的库升级问题,该如何解决模态框无法触发的问题?
内容的提问来源于stack exchange,提问作者Geringverdiener
相关产品推荐
相关产品推荐

