#pll01 - to link, po którego kliknięciu ma pojawić się #pl01. Jednak ta funkcja jest mocno upośledzona, bo w przykładzie powyższym muszę przepisać to 6 razy, a mam w bazie wykonawców, do których jest po 40 i więcej linków. Sprzydałaby się jakaś funkcja, i czuje że odpowiedź podałeś mi tutaj:
Zmienna klikany odpowiada za pobranie atrybutu ID klikanego elementu. Zmienna content to div, który zawiera treść dla danego przełącznika - jak możesz zauważyć, łączę w nim zawartość zmiennej klikany (w tym przypadku: podajCene bądź jestemZainteresowany) oraz tekst "Content", przez co mogę jednym kliknięciem kontrolować div o nazwie np. podajCeneContent
Odpowiednim selectorem wybieraj element, który będzie korzystał z funkcji click(), a później podmieniaj ( show() bądź hide() ) treści w divach, bądź ukrywaj całe div'y.
Po przeczytaniu opisu będzie chyba wszystko wiadome ;)
Napisano
Autor
Dalej tego nie rozumiem choć siedziałem nad tym długo :/ Linki, które mają pokazywać/ukrywać elementy listy z odsyłaczami do youtube mają ID o nazwie pl01, pl02, pl03 i tak dalej, z kolei elementy listy z odsyłaczami do youtube mają ID ply01, ply02, ply03 i tak dalej. Wywnioskowałem tyle, że ID odsyłaczy mam ustawić na pl, a numery ma dodać jQuery, chyba że się mylę.
Jeśli nie uda mi się tego rozkminić, to zrobię to tak jak napisałem w poscie 5, bo czasu mam coraz mniej, później, jak już będę miał czas przysiądę nad nauką javascript i jQuery, bo z tego co widzę, to teraz są to standardy w sieci, zresztą nie bez powodu.
@knysha: Wielkie dzięki za poświęcenie mi swojego czasu, gdyby nie Ty, straciłbym wszelką motywację do dalszej pracy. Dziękuję :)
Napisano
ZjedzKota napisał:
Dalej tego nie rozumiem choć siedziałem nad tym długo :/ Linki, które mają pokazywać/ukrywać elementy listy z odsyłaczami do youtube mają ID o nazwie pl01, pl02, pl03 i tak dalej, z kolei elementy listy z odsyłaczami do youtube mają ID ply01, ply02, ply03 i tak dalej. Wywnioskowałem tyle, że ID odsyłaczy mam ustawić na pl, a numery ma dodać jQuery, chyba że się mylę.
Dobrze zrozumiałeś :)
Cały trick polega na tym, abym tak napisać nazwy, żeby nie trzeba było dużo zmieniać poprzez skrypt.
W moim przykładzie elementy listy oraz div'y mają identyczny początek nazwy -- np. podajCene, a div z filmem ma dodane na końcu ID słowo Content - o wiele łatwiej jest napisać skrypt, który doda do całego ciągu znaków kolejne na jego końcu, niźli brać oryginalny ciąg znaków (u Ciebie: pl01, pl02 itp.), rozbijać go na dwie części np. na pl oraz 01, a dopiero później wstawiać literę y pomiędzy te dwa ciągi.
Proponuję wprowadzenie następującej nomenklatury:
- elementy listy
-- ID = button1, button2 itp.
- div'y z filmami -- opdowiednio ID = button1movie, button2movie itp.
Podczas projektowania interfejsu i późniejszego pisania skryptów staram się w maksymalny sposób ułatwić sobie, jak i kolejnym programistom (wyznaję prostą, ale skuteczną zasadę: programuj tak, jakby programista który po tobie będzie poprawiał, jest seryjnym zabójcą i zna twój adres zamieszkania ;) ) proces tworzenia.
Pozdrawiam! :)
Napisano
Autor
Żeby nie zaśmiecać forum moimi problemami, napiszę jeszcze o drugim moim problemie z linkami - tym razem chodzi o główne menu. W głównym menu mam 6 linków w linii poziomej, a za tymi linkami musi zmieścić się wyszukiwarka. Na razie mam to zrobione tak:
Tutaj każdy element listy menu jest wyświetlany w osobnym bloku, tak że żaden na siebie nie zachodzi - niestety przez takie rozwiązanie moja wyszukiwarka już się nie mieści. Chciałbym żeby to wyglądało tak:
Wiem, że na tych obrazkach słabo widać w czym tkwi problem, chodzi mi o to, żeby bloki z elementami listy nachodziły na siebie. Jest jakaś możliwość żeby to zrobić w css? czy znowu muszę sięgać po całkowicie nie zrozumiałego, ale wszechstronnego JS?
Z góry dziękuję za odpowiedź, pozdrawiam :)
Napisano
żeby bloki na siebie nachodziły... możesz dać im w CSS position:absolute;
Napisano
Zależy w czym trzymasz te linki. W UL wystarczy nałożyć display: inline bądź floaty' na LI, a później tylko marginami załatwić sprawę :)
Napisano
Autor
Sorry za te pytanie, spanikowałem. Jestem ostatnio tak zestresowany tą stroną, że szukam skomplikowanych rozwiązań to prostych zadań. Dzięki za odpowiedzi :)
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
@knysha: Pomysł z jQuery jest genialny :) Zrobiłem to jednak trochę inaczej niż mi pokazałeś:
$(function(){ $('#pll01').click(function(){ $('#pl01').show(); $('#pl00').hide(); $('#pl02').hide(); $('#pl03').hide(); $('#pl04').hide(); $('#pl05').hide(); $('#pl06').hide(); }); });
#pll01 - to link, po którego kliknięciu ma pojawić się #pl01. Jednak ta funkcja jest mocno upośledzona, bo w przykładzie powyższym muszę przepisać to 6 razy, a mam w bazie wykonawców, do których jest po 40 i więcej linków. Sprzydałaby się jakaś funkcja, i czuje że odpowiedź podałeś mi tutaj:
ale niestety nie mam zielonego pojęcia jak mam to wykorzystać u siebie :(
Zmienna klikany odpowiada za pobranie atrybutu ID klikanego elementu. Zmienna content to div, który zawiera treść dla danego przełącznika - jak możesz zauważyć, łączę w nim zawartość zmiennej klikany (w tym przypadku: podajCene bądź jestemZainteresowany) oraz tekst "Content", przez co mogę jednym kliknięciem kontrolować div o nazwie np. podajCeneContent
Odpowiednim selectorem wybieraj element, który będzie korzystał z funkcji click(), a później podmieniaj ( show() bądź hide() ) treści w divach, bądź ukrywaj całe div'y.
Polecam zapoznać się z selectorem :not() - http://api.jquery.com/not-selector/
Po przeczytaniu opisu będzie chyba wszystko wiadome ;)
Dalej tego nie rozumiem choć siedziałem nad tym długo :/ Linki, które mają pokazywać/ukrywać elementy listy z odsyłaczami do youtube mają ID o nazwie pl01, pl02, pl03 i tak dalej, z kolei elementy listy z odsyłaczami do youtube mają ID ply01, ply02, ply03 i tak dalej. Wywnioskowałem tyle, że ID odsyłaczy mam ustawić na pl, a numery ma dodać jQuery, chyba że się mylę.
Jeśli nie uda mi się tego rozkminić, to zrobię to tak jak napisałem w poscie 5, bo czasu mam coraz mniej, później, jak już będę miał czas przysiądę nad nauką javascript i jQuery, bo z tego co widzę, to teraz są to standardy w sieci, zresztą nie bez powodu.
@knysha: Wielkie dzięki za poświęcenie mi swojego czasu, gdyby nie Ty, straciłbym wszelką motywację do dalszej pracy. Dziękuję :)
Dobrze zrozumiałeś :)
Cały trick polega na tym, abym tak napisać nazwy, żeby nie trzeba było dużo zmieniać poprzez skrypt.
W moim przykładzie elementy listy oraz div'y mają identyczny początek nazwy -- np. podajCene, a div z filmem ma dodane na końcu ID słowo Content - o wiele łatwiej jest napisać skrypt, który doda do całego ciągu znaków kolejne na jego końcu, niźli brać oryginalny ciąg znaków (u Ciebie: pl01, pl02 itp.), rozbijać go na dwie części np. na pl oraz 01, a dopiero później wstawiać literę y pomiędzy te dwa ciągi.
Proponuję wprowadzenie następującej nomenklatury:
- elementy listy
- div'y z filmami -- opdowiednio ID = button1movie, button2movie itp.
Podczas projektowania interfejsu i późniejszego pisania skryptów staram się w maksymalny sposób ułatwić sobie, jak i kolejnym programistom (wyznaję prostą, ale skuteczną zasadę: programuj tak, jakby programista który po tobie będzie poprawiał, jest seryjnym zabójcą i zna twój adres zamieszkania ;) ) proces tworzenia.
Pozdrawiam! :)
Żeby nie zaśmiecać forum moimi problemami, napiszę jeszcze o drugim moim problemie z linkami - tym razem chodzi o główne menu. W głównym menu mam 6 linków w linii poziomej, a za tymi linkami musi zmieścić się wyszukiwarka. Na razie mam to zrobione tak:
Tutaj każdy element listy menu jest wyświetlany w osobnym bloku, tak że żaden na siebie nie zachodzi - niestety przez takie rozwiązanie moja wyszukiwarka już się nie mieści. Chciałbym żeby to wyglądało tak:
Wiem, że na tych obrazkach słabo widać w czym tkwi problem, chodzi mi o to, żeby bloki z elementami listy nachodziły na siebie. Jest jakaś możliwość żeby to zrobić w css? czy znowu muszę sięgać po całkowicie nie zrozumiałego, ale wszechstronnego JS?
Z góry dziękuję za odpowiedź, pozdrawiam :)
żeby bloki na siebie nachodziły... możesz dać im w CSS position:absolute;
Zależy w czym trzymasz te linki. W UL wystarczy nałożyć display: inline bądź floaty' na LI, a później tylko marginami załatwić sprawę :)
Sorry za te pytanie, spanikowałem. Jestem ostatnio tak zestresowany tą stroną, że szukam skomplikowanych rozwiązań to prostych zadań. Dzięki za odpowiedzi :)