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

Podstrona, rozwiniecie listy

VPS Starter Arubacloud
+2 głosów
279 wizyt
pytanie zadane 28 sierpnia 2021 w JavaScript przez ferdynand Obywatel (1,250 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 Szeryf (86,280 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 (269,120 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 Ekspert (251,210 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 (269,120 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 Ekspert (251,210 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 (269,120 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 234 wizyt
0 głosów
1 odpowiedź 54 wizyt
pytanie zadane 31 stycznia 2020 w PHP przez Bartx Bywalec (2,120 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...