У меня есть side menu
, в котором есть два buttons
. По умолчанию я хотел бы видеть содержимое profile
div
(которое работает сейчас), но при нажатии на кнопку My reviews
на sidebar
я хотел бы скрыть содержимое profile
div
и вместо этого показать review
div
. Но это не работает.
У меня есть следующий код:
<nav class="side-menu">
<div class="col-xs-3">
<ul class="nav nav-tabs tabs-left">
<li class="active">
<button id="profilebtn" type="submit">
<a href="#profile">Profile</a>
</button>
</li>
<li >
<form action="/findUserReviews" method="POST">
<button id="reviewbtn" type="submit" class="">
<a href="#review"></a>My Review</button>
</form>
</li>
</ul>
</div>
</nav>
<div id="review" >
<table>
<tbody>
<tr th:each="review: ${reviews}">
<form th:action="@{/edit_review}" method="post">
<td class="underline font-weight-bold"
th:text="${review.place.id}" />
<td>
<button type="submit" class="edit" name="action"
value="edit">Edit</button>
</td>
</form>
</tr>
</tbody>
</table>
</div>
<div id="profile" >
<form class="form-horizontal" th:action="@{/edit_profile}">
<fieldset class="fieldset">
<h3 class="fieldset-title">Personal Info</h3>
...
</fieldset>
</form>
</div>
А вот мой jquery
код:
<script >
$(document).ready(function(){
$("#reviewbtn").click(function() {
$("#profile").hide();
$("#review").show();
});
})
</script>
То, что я получаю, это profile
div по умолчанию, что ожидается, но когда я нажимаю кнопку My review
, я вижу результат этого div поверх того, что я вижу для profile
div. Когда я нажимаю кнопку profile
, я снова вижу только результат для элемента profile
div
, но он переходит чуть выше. Я действительно хочу видеть результаты в одном и том же месте страницы, только содержание должно быть изменено в зависимости от нажатой кнопки.
Любая помощь приветствуется.
DEMO:
$("#reviewbtn").click(function() {
$("#profile").hide();
$("#review").show();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="reviewbtn" type="submit" class=""><a href="#review"></a>My Review</button>
<br/><br/>
<div id="review" style="display:none">
This is a review div
</div>
<div id="profile">
This is a profile div
</div>