Mam html jako sidebar i używam Bootstrap
.Jak zmienić klasę aktywną podczas klikania na inny link w bootstrapie użyj jquery?
<ul class="nav nav-list">
<li class="active"><a href="/">Link 1</a></li>
<li><a href="/link2">Link 2</a></li>
<li><a href="/link3">Link 3</a></li>
</ul>
chcę zrobić kilka rzeczy:
Kiedy click
łącza takie jak link 3, page content
zmieni się zawartość 3 linku, a Link 3 będzie mieć klasę active
i usunąć aktywny CLSS w link 1.
myślę, że to może być realizowane w jQuery
i Przeszukałem wiele pytanie w SO, takich jak:
używam tego skryptu:
$(document).ready(function() {
$('.nav li').click(function(e) {
$('.nav li').removeClass('active');
var $this = $(this);
if (!$this.hasClass('active')) {
$this.addClass('active');
}
//e.preventDefault();
});
});
Ale większość z nich korzystać preventDefault
będzie to zapobiec dalszemu działania. Nie może więc zmienić zawartości strony linku 3.
Jeśli usunąć oświadczenie preventDefault, gdy zawartość strony obciążenia łącza 3 jest aktywna klasa będzie z powrotem do Połącz 1.
Więc jest jakiś sposób, aby rozwiązać ten problem?
Dlaczego chcesz usunąć 'preventDefault()'? wykona kod napisany po 'preventDefault()' Nie martw się o to. –
@DKM, Tak, usunąłem 'preventDefault()', ale to załaduje Link 3, a aktywny powróci do Link 1. –
Po każdym łączu dodaj skrót (/ # link1) i przeczytaj go przez javascript i następnie ustaw warunek w swoim kodzie. to rozwiąże twój problem. –