【发布时间】:2018-07-26 10:10:24
【问题描述】:
将另一个页面/内容(也称为“远程”内容)加载到 Bootstrap 模式中一直是许多开发人员的祸根,而像这样的出色解决方案很有效:
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function(){
$($(this).data("target")+' .modal-content').load($(this).attr('href'));
});
使用上述方法,您可以进行一次脚本调用,并将其应用于任何具有加载内容的模式的页面,无论是本地的还是远程的。应该注意的是,对于“本地”模态,您不能拥有 href 属性(即使是带有哈希值的属性),它也适用于(本地和远程)。这可以包含在页脚文件或应用程序中的任何其他全局包含文件中,因此它只驻留在一个位置,并且适用于应用程序中的每个模式。
但是,在 jQuery 3 中,load() 方法已被贬低,那么鉴于此,如何加载远程模态内容?
我知道您可以使用 ajax(),但有没有办法像我上面的示例那样将其构建得更“动态”,这样就不需要为每个模式都有一个独特的脚本?
【问题讨论】:
-
感谢@Taplar,这是一个解决方案,因此可以使用一个脚本在本地或远程内容加载模式:
$('body').on('click.modal.data-api', '[data-toggle="modal"][href]', function(){ $($(this).data("target")+' .modal-content').load($(this).attr('href')); });理想情况下,这应该包含在您的应用程序中全局包含的脚本中,就像页脚文件一样,任何可能具有模式(本地或远程)的页面都会正确触发。
标签: jquery bootstrap-modal bootstrap-4 jquery-3