Dostaję wiele skarg od użytkowników, że kiedy korzystają z moich kart opartych na jQuery, uważają za denerwujące, że kiedy wracają do przeglądarki, nie przechodzą do poprzedniej karty, ale do poprzedniej strony . Dodałem następujące przyciski poprzedni / następny, ale za mało. Jak mogę ponownie skonfigurować moje przyciski, aby użytkownicy przechodzili do poprzedniej karty zamiast do poprzedniej strony po kliknięciu strzałki wstecz przeglądarki. Możesz to przetestować tutaj .
$('#quicktabs-registration_steps').append('<div class="prevnext"><a class="tablink-prev btn" href="#">Prev</a><a class="tablink-next btn btn-lg btn-primary" href="#">Continue</a></div>');
$('.tablink-prev').click(function () {
var index = $('.quicktabs-tabs li.active').index();
$('.quicktabs-tabs li').eq(index).removeClass('active');
if (index == 0) {
index = 1;
}
$('.quicktabs-tabs li').eq(index - 1).addClass('active');
$('.quicktabs-tabs li').eq(index - 1).find('a').click();
return false;
});
$('.tablink-next').click(function () {
var length = $('.quicktabs-tabs').first().children().size();;
var index = $('.quicktabs-tabs li.active').index();
$('.quicktabs-tabs li').eq(index).removeClass('active');
// if (parseInt(index) == parseInt(length) - 1 ) {
// index = index - 1;
// }
if (parseInt(index) == parseInt(length) - 1) {
window.location.href = '/home'; //redirect to home
//index = index - 1;
}
$('.quicktabs-tabs li').eq(index + 1).addClass('active');
$('.quicktabs-tabs li').eq(index + 1).find('a').click();
return false;
});
javascript
jquery
Efe
źródło
źródło
Odpowiedzi:
Możesz użyć historii.
Wciśnij stan historii po otwarciu nowej karty
Odniesienie: https://developer.mozilla.org/en-US/docs/Web/API/History_API
źródło
Bez pełnego kodu nie mogę podać niestandardowego przykładu, ale możesz po prostu dodać tagi zakotwiczenia do każdej karty zawierającej div.
Spowoduje to zaktualizowanie adresu URL za każdym razem, gdy użytkownik kliknie łącze do karty. Te zmiany adresów URL zostaną zapisane w historii przeglądarki i zostaną przywrócone podczas nawigacji wstecz.
Zaktualizowany adres URL będzie wyglądał tak po każdym kliknięciu karty:
https://example.com#Tab1
https://example.com#Tab2
https://example.com#Tab3
https://example.com#Tab4
źródło
z jednej strony następna funkcja karty jest napisana w javascript, a z drugiej strony przycisk Wstecz w przeglądarce korzysta z historii przeglądarki, więc nie ma to znaczenia dla twoich funkcji i nie może w ogóle przejść do poprzedniej karty.
Masz dwa sposoby, aby to osiągnąć:
Po pierwsze: spróbuj załadować każdy krok na innej stronie, odświeżając przeglądarkę, aby strona zapisała się w historii przeglądarki i naciskając przycisk Wstecz, można zobaczyć poprzedni krok
2.: powinieneś mieć przycisk „poprzedni”, aby zobaczyć poprzedni krok, tak jak przycisk następnego kroku
źródło
Użyłem kart bootrap z nawigacją w przeglądarce poniżej, to kompletny przykład
Możesz sprawdzić działający przykład mojego kodu na żywo
1> PRZEJDŹ DO https://www.notesgen.com (użyj pulpitu)
2> Utwórz konto jako student
3> PRZEJDŹ DO Moje konto / Moje pliki do pobrania
4> Kliknij Moje połączenia
źródło
Zmiana skrótu jest podobna do stanu wypychania,
history.pushState
który wyzwalapopstate
zdarzenie. Naciskanie do tyłu i do przodu w przeglądarce spowoduje wyskakiwanie i popychanie tych stanów, więc nie będziesz potrzebować żadnego innego niestandardowego modułu obsługi.PS: Możesz dodać styl css do
:target
swojejactive
klasy. Tewindow.addEventListener('popstate'
tutaj tylko dzienniki pokazać zdarzenia, aleevent.state
zawsze będzie null w tym przypadku.Uruchom fragment kodu, spróbuj nawigować po kartach, a następnie użyj przycisków Wstecz i Dalej.
źródło
pierwszą rzeczą, której potrzebujesz, jest zablokowanie linku do przesłania adresu URL do historii przez $ event.preventDefualt () w zdarzeniu click i dostosowanie historii za pomocą history.pushState (data, tytuł, adres URL) .
W js mamy wydarzenie, które pomaga nam kontrolować zdarzenie wstecz i do przodu według użytkownika. Ta nazwa zdarzenia to „popstate”. możesz go użyć przez window.addEventListener („popstate”, callback) . w funkcji wywołania zwrotnego możesz aktywować i dezaktywować kartę (dodawać i usuwać klasę) oraz wyodrębniać adres URL.
Pokazuję to za pomocą przykładowego kodu. aby lepiej zrozumieć i zrozumieć, spróbuj na serwerze lub serwerze lokalnym, ponieważ zmiana adresu URL w tym miejscu jest ograniczona:
źródło