jquery - jquery 函数不适用于 Dynaamic Boostrap 模态关闭
问题描述
我在 asp.net mvc 项目中使用 Bootstrap 模式来处理动态内容。(引导版本任何 3.4.0 到 4)每当我们尝试关闭模式并单击任何用于 Sidemenu 折叠或展开的 jquery 功能时,我都必须刷新页面。此侧菜单折叠或展开也适用于 2 次打开和关闭模式。
function openModal(url, title, maxwidth, reload) {
$('.modal-body').load(url, function() {
$("#Modeltitle").text(title);
$('#GenericModel').modal({
show: true
});
$("#GenericModel .modal-dialog").css("max-width", maxwidth);
if (reload === true) {
$("#GenericModel").on("hidden.bs.modal", function() {
window.location.reload();
});
}
});
}
<!--Main Layout for Parent Page -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@ViewBag.Title</title>
<link href="/Content/staffs/bootstrap.min.css" rel="stylesheet"/>
<link href="/Content/staffs/style.css" rel="stylesheet"/>
<link href="/Content/select2.min.css" rel="stylesheet"/>
<link href="/Content/toastr.css" rel="stylesheet"/>
<link href="/Content/staffs/staffsCustom.css" rel="stylesheet"/>
</head>
<body class="light purple-sidebar theme-white sidebar-mini">
<div id="app">
<div class="main-wrapper main-wrapper-1">
<div class="navbar-bg"></div>
@Html.Partial("_topNavbar")
<!-- Main Content -->
<div class="main-content">
@RenderBody()
<div class="clearfix"></div>
</div>
<div class="clearfix"></div>
</div>
</div>
<div class="clearfix"></div>
<!--Generic Modal Start -->
<div class="modal fade" id="GenericModel" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="Modeltitle">Modal Header</h4>
<button type="button" class="close" data-dismiss="modal" title="Close" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
<!--Generic Modal End -->
<script src="/Scripts/jquery-3.5.1.js"></script>
<script src="/Scripts/jquery-ui-1.12.1.js"></script>
<script src="/Scripts/staffs/bootstrap.min.js"></script>
<script src="/Scripts/select2.full.min.js"></script>
<script src="/Scripts/staffs/staffsCustom.js"></script>
@RenderSection("scripts", required: false)
</body>
</html>
<!-- Main Layout for Parent Page -->
<!--Call From Parent Page -->
<a href="@Url.Action("user","masters")" onclick="openModal(this.href, 'Add User', '60%', true); return false;" class="btn btn-primary" title="Add New">
<!-- Sidebar Toggle Code which not work on modal close -->
<a href="#" data-toggle="sidebar" class="nav-link nav-link-lg collapse-btn"><i class="fas fa-bars"></i></a>
<!--On Above code Bootstrap Modal Open which have another layout with all CSS and JS -->
@{
ViewBag.Title = "User";
Layout = "~/Areas/staffs/Views/Shared/_ModalLayout.cshtml";
}
<div class="form-row">
<div class="col-lg-9 col-sm-6 col-xs-12">
@using (Html.BeginForm("user", "masters", FormMethod.Post, new { id = "fmruser", @onsubmit = "return validateForm();" }))
{
@Html.AntiForgeryToken()
<div class="form-row">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.id)
@Html.HiddenFor(model => model.pic)
<div class="col-lg-4 col-md-4 col-sm-6 col-xs-12 form-group">
<label class="required">Email</label>
@Html.EditorFor(model => model.email, new { htmlAttributes = new { @type = "email", @class = "form-control", @required = "required" } })
@Html.ValidationMessageFor(model => model.email, "", new { @class = "text-danger" })
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<button class="btn btn-primary" type="button" onclick="SaveUsers()"></button>
<span class="btn btn-outline-secondary" data-dismiss="modal">Close</span>
</div>
</div>
}
</div>
</div>
@section Scripts {
//Jquery Validation
@Scripts.Render("~/bundles/jqueryval")
}
关闭 Dyanmaic Boostrap 模态后。Jquery 函数在父页面上不起作用。我们每次都需要刷新才能工作。
解决方案
推荐阅读
- angular - 如何避免在与 Obserables 的长轮询中重叠 HTTP 响应?
- asp.net-mvc - NHibernate Left Join without Foreign Key - 通过字符串值加入
- python-3.4 - python应用程序的依赖跟踪
- reactjs - 如何捆绑 React 应用程序以在服务器上的任何子目录中工作?
- c++ - 在 C++ 中将结构类型转换为 unsigned char*
- vba - Outlook 访问共享日历
- c# - C# winform File.Copy 从 SaveDialog
- c - 将字符串的字符存储在变量 C 中
- c++ - 目标“.build-impl”的配方失败
- autodesk-forge - Autodesk - 使用 Javascript 获取清单信息