在 ASP.NET MVC 5 中,我有一个 id 为 #modal
的 Bootstrap 模式,当满足某些条件时(省略条件),它作为 view 的一部分加载为简洁起见)。我在 js 文件中实现了 #modal
的 shown.bs.modal
和 hidden.bs.modal
函数:main. js
到目前为止一切顺利,一切正常。但是,在不满足上述条件的情况下,模态将通过 AJAX 调用注入(inject)到 View 的 HTML 中,作为部分 View 的一部分。模式与之前提到的完全相同(相同的 #modal
id,相同的一切)。然而,这次 main.js
中的 shown.bs.modal
和 hidden.bs.modal
函数没有触发。这是为什么?
最佳答案
在 main.js
中更改事件处理程序:
$('#modal').on('shown.bs.modal', function (e) { ... });
$('#modal').on('hidden.bs.modal', function (e) { ... });
委托(delegate)的事件处理程序:
$('body').on('shown.bs.modal', '#modal', function (e) { ... });
$('body').on('hidden.bs.modal', '#modal', function (e) { ... });
您可以将 body
替换为包含 #modal
的父容器。有关详细说明,请参阅 @Stephen Muecke's comment 中的链接。 .
关于javascript - 当通过 MVC 局部 View 注入(inject)时,Bootstrap 模态显示和隐藏事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39314940/