![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
czesc.
w php generuje tabele z wierszami. jedna z kolumn jest link do obrazka, jak sie kliknie to sie obrazek wyswitla, .... ale chcialbym gdy uzytkownik kliknie na jakims wierszu (ktorejkolwiek kolumnie) by pojawial sie obrazek z danego wiersza. znalazlem taki kawalek kodu ktory mam nadzieje ze jest pomocny, choc go do konca nie rozumiem (IMG:style_emoticons/default/sad.gif) 1. uzywam klasy hidden, ktora : .hidden{ display: none; } 2. przy tworzniu tablicy uzywam tego hidden by nie pokazac linku echo '<td style="width:240px"> <a href="sigfiles/'.$myimg.'" class="hidden">PIC LINK</a></td>'; choc w sumie to chyba lepiej uzyc tej klasy w tagu TD, by wcale kolumny z linkiem nie pokazywac. teraz pokazuje sie pusta kolumna. 3. i teraz jest taki kod: $('table').on('click', 'tr', function(){ var a = $(this).find('.hidden'); a.trigger('click'); ktory z tego co rozumiem przechwytuje event klikniecia w wiersz tabeli, szuka co jest klasy hidden (czyli ten moj img), i trigeruje click, czyli jesli dobrze rozumiem, to powinno dzialac tak samo jakbym kliknal samemu w ten ukryty link. niestety na ta chwile nie dziala (IMG:style_emoticons/default/sad.gif) ...i nie wiem czy wogole tedy droga dzieki. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie:
a:
jesli zaslonie classa hidden pola kolumny to Twoj sposob je po prostu odsloni, beda do klikniecia, ale nie o to mi chodzilo. @johny_s Twoj sposob dziala. otwiera obrazek. Dziekuje. Tylko ze w innym kodzie uzywaja tego a.trigger('click'); ... i tam tez to dziala, a u mnie jakos nie. Zaraz sie temu jeszcze przyjrze, bo wciaz nie jest to 100% jak chcialem. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Console.log(a), zapewne jest tam tablica elementów wiec .each().
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ok, źle Cię zrozumiałem.
Nie wywołasz natywnego kliknięcia odpalając trigger. Wyzwalając dane zdarzenie odpalasz funkcję, która została przypisana do tego zdarzenia (w kodzie JS). Jeśli podepniesz pod 'click' <a> np. funkcję window.open, to wtedy zadziała to czego oczekujesz. P.S. Wydaje mi się, że to przekombinowane. Jeśli <a> nie jest Ci do niczego potrzebne, to src obrazka przechowywuj w data-src wiersza tabeli, pobieraj i wstawiaj jako url dla bieżącej lokalizacji lub nowego okna. Ten post edytował trueblue 21.02.2015, 20:38:19 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
moja wina, sposob jak to opisuje jest pewnie daleki od poprawnego (IMG:style_emoticons/default/sad.gif)
zaraz przygotuje opis co mam a co chcialbym osiagnac. juz tlumacze jak to chcialbym zrobic, i mam nawet dzialajacy kod, ale pisany przez kogos i nie wszystko zrozumiem, a lubie dokladnie rozumiec swoj kod, stad pisze od poczatku po swojemu, no i wersje troche rozbudowana. 1. mam wyswietlone wiersze tabeli, kilka kolumn, ostatnia kolumna (z linkiem do obrazka przypisanego danemu wierszowi) jest na ta chwile slaba, bo jest pusta, gdyz na niej zastosowalem klase hidden. To jest do poprawki. Czy moge np. Jakos dobrac sie do linku do obrazka, inczej niz: var a = $(this).find('.hidden'); do czego daze w tym kroku: 2. po kliknieciu w wiersz na ta chwile (po zaaplikowaniu kodu Johny_s) otwiera obrazek,ale wychodzi z glownej strony. Chce to zmienic by pozostawal na stronie i otwieral obrazek przy pomoc PrettyPhoto. Zaraz z tym powalcze. 3. Ale teraz, ....jak mam wierszy 100, to nie chce po kolei klikac wiesza, otwierac kazde zdjecie, zamyksac i przechodzic do kolejnego wiersza. Chce ( i w tym kodzie co mam tez tak to jest zrobione, tylko nie ogarniam jak (IMG:style_emoticons/default/sad.gif) ) przejechac powoli myszka po wierszach i by obrazeki (w wersji pomniejszonej) sie od razu pojawialy i znikaly. ad1. rozwiazalem, dodalem link z obrazkiem z classa hidden do innej kolumny juz czyms wypelnionej. ...ale jak zrobic by a[0].click(); otwieralo obrazek w prettyPhoto (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) czy jest jakis sposob by zdebugowac czemu sie obrazek nie otwiera przy uzyciu tej biblioteki prettyPhoto? skonczyly mi sie pomysly (IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) ![]() ![]() |
f12 i w konsoli sprawdź czy nie wywala błędów
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
nie wywala.
doszedlem do czegos takiego, ze jesli stosuje prettyPhoto do obrazka ktory jest w sekcji body to dziala, ale jesli chce dokladnie ten sam kod uzyc tez w czesci body ale generowanej przez php / ajax to juz nie dziala. <a href="./pics/obrazek.png" rel="prettyPhoto[myGallery]" title="tytul"><img src="./pics/obrazek.png" width="160" height="79" alt="mojalt" title="mojtytul"/></a> ........... .......... .......... nowy trop (IMG:style_emoticons/default/smile.gif) w tym kodzie innej osoby jest cos takiego i to dziala: $.ajax({ url: 'ajax/ajax_reload.php', type: 'post', data: {reload: 'reload'}, // dataType: 'JSON', success: function(msg) potem petla po msg, ktora procesuje zwrocone wiersze tabeli: var html = '<tr class="result" '+style+'><td class="instrument">'+v.instrument+' '+v.id+'</td><td class="tf">'+v.tf+'</td><td class="signame">'+v.signal_name+'</td><td class="sigdir">'+arrow+'</td><td class="sigbarno">'+v.signal_barno+'</td><td class="updatedtime">'+convertDate(v.last_updated_time)+'</td><td class="exptime">'+convertDate(v.exp_time)+'</td><td>'+convertDate(v.last_updated_time)+'<a href="sigfiles/'+v.img+'" class="hidden" rel="prettyPhoto">xxx</a></td></tr>'; $('#results').append(html); document.title $("a[rel^='prettyPhoto']").prettyPhoto({social_tools: false}); ... i to dziala, klikkniecie na kazdy wiersz tabeli otwiera obrazek w prettyPhoto a gdy zmienie troche petle: if(ii<2) { $("a[rel^='prettyPhoto']").prettyPhoto({social_tools: false}); } powoduje ze tylko 2 pierwsze wiersze beda klikalne (bo ii<2) Czego nie rozumiem, to czemu dla kazdego processowanego wiersza dodawane jest to
bo to jest cos czego ja nie robie u siebie. u mnie w kodzie jest to tylko raz i w taki sposob:
Wytlumaczy ktos moze? Ten post edytował robert1974 22.02.2015, 10:00:24 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jesteś pewien, że jest jakaś pętla po msg, a jeśli jest to prettyPhoto jest dołączane w każdym jej przebiegu? Jeśli tak, to nie ma to sensu. Wystarczy raz poza pętlą (po dodaniu wierszy).
Jeśli też dołączasz wiersze poprzez ajax, to powinieneś zrobić analogicznie. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
ja tego tez nie rozumiem (IMG:style_emoticons/default/sad.gif) , .... ale kod ktory dziala wyglada tak:
i sprawdzilem ze jesli zrobie ten warunek:
to klikalne/otwierane w prettyPhoto beda tylko 2 pierwsze wiersze. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie tu nic do nierozumienia.
Warunek działa prawidłowo i dzięki temu efekt jest jaki jest. Natomiast dołączanie prettyPhoto można wyprowadzić poza pętlę. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
jest ten kod tez poza petla, ale zupelnie nic nie zmienia czy aktywny czy zakomentowany. I to jest wlasnie ta czesc ktorej nie rozumiem. Jesli nie bedzie tej linijki dodanej tak jak w poprzednim kodzie (wewnatrz petli) to nie dziala klikanie na prettyPhoto (IMG:style_emoticons/default/sad.gif)
a ze moj kod jest w php ktory tworzy tabele, to nie wiem nawet jak ten warunek dodac. Dodanie go raz po $(document).ready ... tez nic nie zmienia, czyli mi nie dziala. maskara jakas, 2 dni na tym siedze i nie dziala ani moja wersja, ani nie potrafie ogarnac czemu to co wkleilem dziala. a moze inaczej: tworzony html wyswietlany jest na stronie poprzez: $('#results').append(html); a co wlasciwie robi linijka : $("a[rel^='prettyPhoto']").prettyPhoto({social_tools: false}); bo ona nie jest dodawana do html na strone. a to ona odpowiedzialna jest za to ze dana linijka bedzie klikalna lub nie (tak jak pisalem wczesniej poza petla taka linijka nic juz jakos nie zmienia).
Ten post edytował robert1974 22.02.2015, 22:35:21 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
prettyPhoto w document.ready dołącza galerię do elementów, które istnieją przy załadowaniu strony.
Jeśli galeria ma działać dla elementów dodanych dynamicznie (ajax), to za to odpowiada ten drugi fragment (po append). |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
aaa, zaczynam rozumiec. dzieki. dzisiaj popatrze. bo u mnie to bedzie jakos inaczej , bo tabele buduje tez dynamicznie/Ajaxem ale w php, w ten sposob:
uff, dziala, krok na przod, po nacisnieciu wiersza otwiera juz w prettyPhoto (IMG:style_emoticons/default/smile.gif) w moim przypadku trzeba dodac 1 raz:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.09.2025 - 00:37 |