Итак, я создал индексную страницу с представлением вкладок в начальной загрузке 4, и на каждой вкладке я добавил диапазон, содержащий X, чтобы пользователь мог закрыть вкладку.
Однако когда нажимается X, содержимое вкладки все еще отображается, я обнаружил несколько вопросов, касающихся чего-то похожего с начальной загрузкой 3, которые привели меня к JQuery
<ul class="nav nav-tabs" role="tablist">
<li id="dashboardTab" class="nav-item"><a class="nav-link active" id="dashboard-tab" data-toggle="tab" href="#dashboard" role="tab" aria-controls="dashboard" aria-selected="true">Dashboard</a></li>
<li id="usersTab" class="nav-item" style="display: none;"><a class="nav-link" id="userCreate-tab" data-toggle="tab" href="#userCreate" role="tab" aria-controls="userCreate" aria-selected="false">Users<span onclick="onCloseTabButtonClick(0)">X</span></a></li>
</ul>
Это мои вкладки, ничего особенного.
function onCloseTabButtonClick(pageNumber) {
switch (pageNumber) {
case 0:
document.getElementById("usersTab").style.display = "none";
$('#userCreate-tab').on('click', function (event) { event.preventDefault(); });
break;
}
}
Это моя попытка остановить переключение страниц, я довольно новичок в JQuery, но, насколько я понимаю, event.preventDefault();
должен остановить переключение, однако оно все еще проходит.
Я проверил это, добавив туда console.log, и он сработал, поэтому я знаю, что мое событие click работает.
Если кто-нибудь может указать мне правильное направление, я был бы признателен.
UPDATE
Пытался передать событие закрытия функции закрытия вкладки
<link href="../Content/site.css" rel="stylesheet"/>
<link href="../Content/bootstrap.min.css" rel="stylesheet"/>
<script src="../Scripts/jquery-3.4.1.min.js"></script>
<script src="../Scripts/bootstrap.min.js"></script>
<script type="text/javascript">
function onCloseTabButtonClick(event, pageNumber) {
switch (pageNumber) {
case 0:
document.getElementById("usersTab").style.display = "none";
event.preventDefault();
break;
case 1:
}
}
</script>
<div id="container-fluid">
<div class="row">
<div class="col-md-12" style="padding-right: 0px;">
<ul class="nav nav-tabs" role="tablist">
<li id="dashboardTab" class="nav-item"><a class="nav-link active" id="dashboard-tab" data-toggle="tab" href="#dashboard" role="tab" aria-controls="dashboard" aria-selected="true">Dashboard</a></li>
<li id="usersTab" class="nav-item" style="display: none;"><a class="nav-link" id="userCreate-tab" data-toggle="tab" href="#userCreate" role="tab" aria-controls="userCreate" aria-selected="false">Users<span onclick="onCloseTabButtonClick(event, 0)">X</span></a></li>
</ul>
<div class="tab-content">
<div id="dashboard" class="tab-pane fade show active" role="tabpanel" aria-labelledby="dashboard-tab">
<%-- Dashboard Page--%>
</div>
<div id="userCreate" class="tab-pane fade" role="tabpanel" aria-labelledby="userCreate-tab">
<%--User Page--%>
</div>
</div>
</div>
</div>
</div>
ОБНОВЛЕНИЕ 2
Попытка управлять событием click и hide с помощью JQuery
<script type="text/javascript">
$("li.nav-item .tabCloser").click(function (e) {
e.stopPropagation();
$(this).parent().hide();
var idHref=$(this).parent().attr("href");
$(idHref).removeClass("active");
console.log('JQuery Fired');
})
</script>
<ul class="nav nav-tabs" role="tablist">
<li id="dashboardTab" class="nav-item"><a class="nav-link active" id="dashboard-tab" data-toggle="tab" href="#dashboard" role="tab" aria-controls="dashboard" aria-selected="true">Dashboard</a></li>
<li id="usersTab" class="nav-item"><a class="nav-link" id="userCreate-tab" data-toggle="tab" href="#userCreate" role="tab" aria-controls="userCreate" aria-selected="false">Users<span class="tabCloser">X</span></a></li>
</ul>