• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podstrona, rozwiniecie listy

+2 głosów
103 wizyt
pytanie zadane 28 sierpnia 2021 w JavaScript przez ferdynand Użytkownik (860 p.)
Witam,

Nie moge sobie tego ustawic, chodzi mianowicie o to, że mam dwie podstrony i potrzebuje na <a href> znajdujące sie na pierwszej stronie wykonanc funkcje , która po kliknieciu bedzie mi rozwijac <li>znajdujące sie na dugiej podstronie, ale oba te elementy sa na innych podstronach. Każda ma podpiety osobno script.

ustawilem to że po klikniecu odsyła mnie do <li>, ale to <li> sie nie rozwija, wiadomo dlaczego, bo nie ma go w DOM.

Jak zrobie osobny plik z JS i podepne go do obu podstron to bedzie mi wyrzucać bład w consoli i to mi nie bedzie działać.

Jest możliwość zrobienia tego bez frameworku ??. Wiem, że znajomośc PHP lub ajax tu pomoże, ale u mnie narazie to raczkowanie.

Dzięki i pozdrawiam. :)

3 odpowiedzi

+1 głos
odpowiedź 28 sierpnia 2021 przez SzkolnyAdmin Maniak (67,660 p.)
wybrane 31 sierpnia 2021 przez ferdynand
 
Najlepsza
Zapoznaj się z obsługą localStorage. To inne rozwiązanie niż proponują koledzy.
+2 głosów
odpowiedź 28 sierpnia 2021 przez Wiciorny Ekspert (219,190 p.)
edycja 28 sierpnia 2021 przez Wiciorny
Jest to do zrobienia spokojnie w Vanilla JS, albo z lekkim wykorzystaniem jQuery co byłoby prostsze

podejdź do problemu nieco inaczej.
Potrzebujesz informacji na podstronie, po kliknięciu "tego konkretnego linku"  ma się wykonać coś na innej stronie tak dodatkowego po przejściu na niej, ale normalnie jeśli inne linki bedą klikane "t to bez tego konkretnego, i jakiegoś charakterystycznego dla niego np parametru" taka sytuacja nie zajdzie

Tę informację przekaż do funkcji, tam obsłuż: jeśli wystąpił taki warunek, że kliknięto ten link np, to ładując sekcje otworzy się lista "też coś na bazie on load strony", jeśli nie to normalnie strona się będzie ładować bez rozwijania

ściślej mówiąc, przekaż parametr do jakby "niezależnego bytu" którym jest twoja podstrona :)
+1 głos
odpowiedź 28 sierpnia 2021 przez VBService Mędrzec (162,950 p.)
edycja 29 sierpnia 2021 przez VBService

Możesz przekazać parametr za pomocą linka ( <a href="...")> ) i za pomocą
window.location.search "użyć go" w js-ie na podstronie.

Przykład:

[ edit ]

index.html

<ul>
  <li><a href="podstrona.html?cmd=show">Pokaż na podstronie menu</a></li>
  <li><a href="podstrona.html?cmd=hide">Ukryj na podstronie menu</a></li>
  <li><a href="podstrona.html">Ukryj na podstronie menu</a></li>
</ul>

podstrona.html

<div id="menu" style="display: none">
  <ul>
    <li>Lorem ipsum 1</li>
    <li>Lorem ipsum 2</li>
    <li>Lorem ipsum 3</li>
    <li>Lorem ipsum 4</li>
    <li>Lorem ipsum 5</li>
  </ul>
</div>
<div id="state">Menu: <span></span></div>

<script>
  window.onload = () => {
    if (window.location.search.split('?').length > 1) {
      const cmd = window.location.search.split('?')[1].split('=')[1];
      menu(cmd);
    }
  }

  function menu(cmd) {
    document.querySelector('#state span').textContent = cmd;
    cmd = (cmd == 'show') ? 'block':'none';
    document.getElementById('menu').style.display = cmd;    
  }   
</script>

 

komentarz 28 sierpnia 2021 przez Wiciorny Ekspert (219,190 p.)
a co jeśli ktoś do ścieżki doda ci  query- parametr po url :)? nie klikając w link, nie sądze że to jest dobre rozwiązanie
komentarz 29 sierpnia 2021 przez VBService Mędrzec (162,950 p.)
edycja 29 sierpnia 2021 przez VBService

To jest jedna z możliwości co zaproponowałem, można tworzyć różne wariacje.  smiley

Można rozbudować, zmienić kod, żeby uwzględniał sytuację (przykład jest "mocno" uproszczony)

a co jeśli ktoś do ścieżki doda ci  query- parametr po url :)? 

Ta nawet "prymitywna" walidacja spełnia już jakieś swoje zadanie

cmd = (cmd == 'show') ? 'block':'none';

wszystko co nie jest poleceniem 'show' spowoduje ustawienie 'none'

i dodanie

<div id="menu" style="display: none">

...

</div>

 

Moim zdanie w programowaniu nie ma jednego idealnego rozwiązania dla danego "problemu" programistycznego, każdy można "rozwiązać" na kilka sposobów, często decyduje, które rozwiązanie "najszybciej" zadziała (testy wydajności) przy jak najmniejszym zaangażowaniu zasobów komputera.

komentarz 29 sierpnia 2021 przez Wiciorny Ekspert (219,190 p.)
tak, ale rozwiązanie nie powinno być wrażliwe. Tak jak w przypadku bazy, uwazać trzeba na ataki, swoją drogą, najlepszym rozwiązaniem będzie tutaj LocalStorage dla takiego prymitywnego problemu, z wymogiem rozwiązania tego w oparciu o taka aplikacje.

Bo tak naprawdę spełnia wszystkie potrzeby,

Podobne pytania

0 głosów
2 odpowiedzi 186 wizyt
0 głosów
1 odpowiedź 40 wizyt
pytanie zadane 31 stycznia 2020 w PHP przez Bartx Bywalec (2,100 p.)

87,955 zapytań

136,534 odpowiedzi

304,445 komentarzy

58,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...