Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ajax i adres z #, Jak to zapisać?
Bart123
post 27.09.2014, 18:05:40
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 10.05.2014
Skąd: Elbląg

Ostrzeżenie: (10%)
X----


Mam coś takiego:


$("a[href*='" + location.pathname + "']").addClass("current-menu-item"); });

Ale mój adres wygląda tak: Adres/#/tytuł

Jak zapisać tą formułkę powyżej, by uwzględnić # w adresie?

Z góry dziękuję za pomoc. Dla Was to pewnie łatwizna.

[JAVASCRIPT] pobierz, plaintext
  1. jQuery(document).ready(function(){
  2.  
  3. jQuery(window).on('hashchange', function() {
  4. $("a[href*='" + location.pathname + "']").addClass("current-menu-item"); });
  5.  
  6. return false;
  7. });
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Bart123 27.09.2014, 18:19:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
trueblue
post 27.09.2014, 18:10:22
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


location.hash

http://www.w3schools.com/jsref/obj_location.asp


--------------------
Go to the top of the page
+Quote Post
Bart123
post 27.09.2014, 18:29:54
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 10.05.2014
Skąd: Elbląg

Ostrzeżenie: (10%)
X----


Wielkie dzięki trueblue smile.gif

Myślałem, że zadziała, ale nie działa sad.gif

[JAVASCRIPT] pobierz, plaintext
  1. jQuery(document).ready(function(){
  2.  
  3. jQuery(window).on('hashchange', function() {
  4. $('.current-menu-item').removeClass("current-menu-item");
  5. $("a[href*='" + location.hash + "']").addClass("current-menu-item"); });
  6.  
  7. return false;
  8. });
  9.  
[JAVASCRIPT] pobierz, plaintext


Ja mam stronę przeładowywaną ajaxem - czy to może mieć znaczenie?
Go to the top of the page
+Quote Post
trueblue
post 27.09.2014, 18:31:22
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A zmienia się hash w pasku adresu?


--------------------
Go to the top of the page
+Quote Post
Bart123
post 27.09.2014, 18:35:44
Post #5





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 10.05.2014
Skąd: Elbląg

Ostrzeżenie: (10%)
X----


Powiem w ten sposób.

Adres w pasku adresu wygląda tak

ADRES/edukacja

Ale w menu Wordpressa - jest wpisany adres ADRES/#/edukacja i taka pozycja jest dodana w menu. Tylko tego hasha nie pokazuje w URL.

Ale zmienia się np z edukacja na zainteresowania itd.
Go to the top of the page
+Quote Post
trueblue
post 27.09.2014, 18:37:57
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Jeśli nie ma w pasku adresu hasha, to w ogóle go nie badaj i nie zajmuj się nim.
Porównuj dokładnie to co masz w pasku i odnośniki w linkach.

Ten post edytował trueblue 27.09.2014, 18:39:48


--------------------
Go to the top of the page
+Quote Post
Bart123
post 27.09.2014, 18:41:47
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 10.05.2014
Skąd: Elbląg

Ostrzeżenie: (10%)
X----


Wiesz co jest moim celem?

Kiedy adres zmienia się z edukacja na zainteresowania - niezależnie od tego czy w coś klinąłem czy nie - dodaj klasę current do aktualnego linku. Stąd potrzebny mi jest hash. TYlko nie wiem co w takim razie zrobić, by on był widoczny w pasku adresu.

http://adres.c0.pl/#/edukacja/

Taki adres mam podany w menu. Ale jak już klikam, hasha nie ma. To oczywiście nie jest adres strony właściwy. Zastępuję umyślnie pierwszą część słowem adres.

Ten post edytował Bart123 27.09.2014, 18:49:40
Go to the top of the page
+Quote Post
trueblue
post 27.09.2014, 18:48:37
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Jeśli będziesz mieć hash, to i tak musisz obsłużyć jakieś zdarzenie badające jego zmianę.
Podejrzewam, że masz nawigację opartą o HTML5 History, więc zamiast kombinować z hashem i zdarzeniem onhashchange, obsłuż onpopstate.

Ostatecznie, najbardziej toporne rozwiązanie, to wywoływać cyklicznie jakąś funkcję i wtedy badać zmianę adresu.


--------------------
Go to the top of the page
+Quote Post
Bart123
post 27.09.2014, 18:55:11
Post #9





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 10.05.2014
Skąd: Elbląg

Ostrzeżenie: (10%)
X----


To nie działa w ogóle sad.gif pewnie coś źle wpisałem.

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. jQuery(document).ready(function(){
  3.  
  4. jQuery(window).on('popstate', function() {
  5. $('.current-menu-item').removeClass("current-menu-item");
  6. $("a[href*='" + location.pathname + "']").addClass("current-menu-item"); });
  7.  
  8. return false;
  9. });
  10.  
[JAVASCRIPT] pobierz, plaintext


Szkoda, że sam nie potrafię ajaxować linków i muszę używać zakichanej wtyczki sad.gif


Trueblue wspomniałem już, że funkcja .on("popstate" w ogóle nic u mnie nie wywołuje.

Mógłbyś podać przykład lub ewentualnie zajrzeć w moją funkcję i ją poprawić, jeżeli coś jest tam nie tak?

Ten post edytował Bart123 28.09.2014, 12:40:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:32