【发布时间】:2022-01-13 02:26:46
【问题描述】:
我有一个模式对话框,其样式显示在客户浏览器的右侧。根据他们在导航栏中单击的图标(这里是一个示例)...
<a class="nav-link right-menu" role="button" data-bs-toggle="modal" data-bs-target="#rightSubMenu" data-id="admin-menu">
<i class="fas fa-users-crown"></i>
</a>
调用 ajax 并通过名为 .right-sub-menu-content 的附加类将 HTML 片段加载到 modal-body 中。这是ajax调用...
$('.right-menu').click( function() {
var requestedMenu = $(this).attr('data-id');
$.ajax({
type: "POST",
url: "//" + $(location).attr('hostname') + "/modules/",
data: {
'module': requestedMenu
},
dataType: "html",
cache: false,
success: function(data) {
$('.right-sub-menu-content').html(data);
}
});
});
我还在加载一个 js 文件来处理按钮、附加选择菜单更新等。它使用标准 标记作为 HTML 片段的一部分加载。
我的问题——在一个特定的片段中,我加载了一个仪表板来提供我的管理员服务器状态更新。它使用 setInterval 每 5 分钟通过 ajax 刷新几个 DIV。
我发现在关闭模态对话框后,setInterval 继续运行,即使我破坏了模态体的内容,我认为它会包括作为片段的一部分加载的脚本,使用以下在 main.js 文件中 ...
$('.modal.right').on('hidden.bs.modal', function() {
$('.right-sub-menu-content').html('');
});
所以我的问题是......因为我正在为其他包含自己的 JS 文件的 HTML 片段重用模态对话框,当模态关闭时如何完全卸载 js 文件?
感谢大家的见解。
【问题讨论】:
标签: jquery ajax bootstrap-5