Skrypt do wyświetlania w divie tylko jednego z tekstów


(arlid) #1

Witajcie. Szukam, właściwie sam nie wiem jak to nazwać. Opisze o co chodzi. Mianowicie mam listę. Wygląda ona mniej więcej tak.

To samo co w #txt1, a potem zależnie do tego w jaki link klikniemy.
Link 1Link 2Link 3Link 4

Tekst do Link1
Tekst do Link1
Tekst do Link1
Tekst do Link1

Chciałbym uzyskać taki efekt, by po wczytaniu strony w divie o klasie box znalazł się tekst z

a pozostałe teksty były ukryte. A potem zależnie od tego jaki link wybierze użytkownik znikał #txt1, a pojawiał się tekst spod wybranego linku. Niestety nie iem jak taki efekt nazwać stąd taki opis. Szukając również nie znalazłem żadnego rozwiązania. Dobrze by było, jakby to mogła być rozwiązane w jQuery oraz mógłbym to stosować indywidualnie dla wielu elementów (dla każdego działałoby indywidualnie). Dzięki z góry.


(Drobok) #2

Display block / none w jquery. Rozróżnianie linków mógłbyś zrobić name, ew href do id etc. Ale skrypt jest zły, ponieważ bez włączonego js'a nie działa ci nic :slight_smile:


(arlid) #3

Właśnie, nie da się inaczej, jakoś to obejść?


(Drobok) #4

JQ to dodatek, musisz użyć php a w js tylko obsługiwać bez przeładowania. Ja bym zrobił plik (wszystko w zamyśle nie testowane, pisane z pamięci, ale ogólnie powinieneś połapać o co mi chodziło, tym bardziej, że w zasadzie robię ogromnie dużo błędów, głównie tych małych :slight_smile: ):

<?php()

(MaXDemage) #5

Woo, po co php?

ktoś tu się chyba zapedził. Samo jquery wystarczy, można poszukać czegoś w stylu "acordeon", ale raczej samemu trzeba napisać prosta funkcję która po clicku pobierze html() z odpowiedniego diva i wrzuci do wybranego diva. To wszystko. Gdybym miał pod ręką komp zamiasta tabka bym to lepiej machnał.:stuck_out_tongue:

$("a").click(function(){ var addr  =  $(this).attr("href"); //w sumie w hrefie jest jeszcze # ktorego trzeba by skasować,  //pytanie czy w tym momencie nie lepiej dodac do  atrybutu "data", lub "ref" i z niego brać dane?  var txta = $("div[id="+addr+"]").html(); $("#box").html(txta); return false;



To ogólny zamysł najprostszej wersji - mam nadzieje że pomoże.



EDIT i machłem ;p

(Drobok) #6

Po to php by działało z wyłączonym js. Widać niektórzy robią na odwal, byle było najłatwiej :slight_smile:


(MaXDemage) #7

@drobok

najłatwiej i owszem - na odwal? no może troche ;p

Pan założyciel pytał o rozwiązanie z wykorzystaniem jQuery, więc i takowe chciałem mu podać.

Tu jest oczywiście duże pytanie i problem który zauważyłeś - czy ktoś blokuje sobie js i czy trzeba koniecznie robić alternatywę w wersji php? Pytanie czy tutaj potrzebna jest alternatywa php? Czy na pewno ktoś zablokuje js? Czy nie dało by się to zrobić krótszym kodem php i tak dalej ;p teraz możemy się prześcigać w wytykaniu sobie nieścisłości a tymczasem mamy kilka rozwiązań problemu i wilk syty i owca cała i jeszcze za chwile możemy dojść do ciekawych wniosków odnosni potrzeby tworzenia fallbacku w php... a ja jeszcze za chwile przepisze ładniej poprzedni kod jquery i będzie ogólnie cacy ;p


(arlid) #8

Dzięki, dużo mi to pomogło.