jQuery - jak zrobiony jest ten przycisk

0

Siema, jak na tej stronie działa "Wyślij wiadomość", bo nie ma żadnego skryptu JS ?

http://aldautomotive.otomoto.pl/

0

Niestety muszę Cię rozczarować - magii nie ma, i dokonuje się to poprzez skrypt JS.
Skoro wiesz o istnieniu jQuery powinieneś też chyba wiedzieć, że zdarzenia np. kliknięcia robi się nie tylko poprzez onclick.

Event podpinany jest gdzieś w tym pliku:
http://static-img.otomoto.pl/userpage/packed/js/default_0_default_pl_PL.js?v=47
Niestety jest to plik spakowany, możesz go trochę upiększyć (google: "js beautifier"), ale i tak będą mało logicznie nazwane zmienne i trochę Ci to utrudni podejrzewam.

Może po prostu poczytaj jak ogarnąć eventy w jQuery:
http://api.jquery.com/click/

Jeżeli marzy Ci się przekopiowanie tego formularza to odpada. Prościej stworzyć własny formularz, z position: abolute; display: none; i potem zmieniać właściwość display po kliknięciu przycisku. Żadna filozofia. Jeżeli forma wysyła się ajaxem - no to zostaje dalej Googlować za jquery ajax i czytać. Przyda się też event submit.

0

po kliknięciu pokazuje się warstwa z position:fixed. jQuery nie ma tu nic do rzeczy, bo w obsłudze zdarzenia kliknięcia wystarczy zrobić style.display = "block", a przy zamykaniu zamiast block przywrócić początkową wartość display - "none".
proponuję zapoznać się z narzędziem typu firebug.

0

już wiem co zrobiłem... przeczytałem w komentarzu że to jQuery i stąd moje pytanie. Zapomniałem że może być gdzieś niżej ta funkcja. Ale jedno mnie zastanawia bo jest tam np: tak:

jQuery(function(a){a.fn.positionMe=function(){if(this.length){var b=this;function c(){var g=a(window).height(),d=a(window).width(),j=b.height(),f=b.width(),i=g-j,e=d-f;b.css({top:(i>0?i/2:0),left:(e>0?e/2:0)})}b.bind("update",c);a(window).resize(c).resize()}}});
/* main/default/js/omPopupForm.js */

Czyli w komentarzu mam ścieżkę do jakiegoś innego pliku .js. Czy to jest tak że ta funkcja wywołuje ten plik, czy jak to działa ?

0

Nie, ten plik to jest złączone klika plików w jeden (żeby się szybciej ładowało). Komentarz masz po to, żeby rozpoznać w którym miejscu się któy plik zaczyna.
Ale zauważ, że i tak te funkcje są spakowane. Tutaj jeszcze na oko widać co to robi, ale jak chcesz analizować cały plik to krzyż na drogę.

I naprawdę - prościej Ci to będzie napisać samemu niż skopiować od nich.

0

Nie chce kopiować. Tylko chciałem wiedzieć jak to im działa. A tak btw jak robić kompresję ? Czemu mimo kompresji mają te pliki na serwie i to publicznym ?

0

To jest kod wykonywany po stronie klienta. Wobec tego musi dotrzeć do klienta i być widoczny.

Ogólnie widzę, że nie kojarzysz nawet tego, że część kodu jest wykonywana na serwerze, część w przeglądarce użytkownika.
Pokrótce:
A więc kod po stronie serwera, odpowiedzialny za przetwarzanie danych od użytkownika (czyli: zwykłe requesty danego, dane z formularzy), za przetwarzanie danych z bazy danych i podobne pierdoły.
Kod po stronie klienta odpowiedzialny jest za: ukrywanie/pokazywanie formularza, różne interakcje z użytkownikiem, animacje i podobne (animacja przecież nie będzie się działa na serwerze).

Kompresję - czyli zmniejszenie objętości kodu, pozostawiając go jednak zrozumiałym dla przeglądarek (wywalenie komentarzy, spacji, znaków nowych linii, skrócenie czytelnych nazw funkcji i zmiennych na jednoznakowe i podobne akcje) dokonuje się poprzez odpowiednie narzędzia, które w dwie sekundy znajdziesz w Google. Niekoniecznie wykazujesz się chęcią używania tej wspaniałej wyszukiwarki do gromadzenia wiedzy, więc tym razem zmuszę Cię do jej użycia i nie podam hasełka do wpisania, ani żadnego linka.

0

Dobra poszukam i poczytam o tym. Ale nadal nie rozumiem jednej kwestii. Jeżeli jest skompresowana funkcja (taka jak podałem wcześniej) to ona robi to samo co funkcja zawarta w pliku main/default/js/omPopupForm.js. Czyli jakby nie było tego pliku na serwerze to i tak by wszystko poprawnie działało ? Czy jednak jest jakieś powiązanie między nimi ? Jeżeli jest to w jaki sposób, ponieważ dokładnie analizując kod nie mogę tego znaleźć.

0

nie, nie musi być tego pliku na serwerze. jeżeli tam jest - to dlatego, że komuś nie chciało się go usuwać po wygenerowaniu tamtego (ew. wykluczać go z uploadu na serwer).

narzędzia takie jak Firebug (dla FF) czy Dragonfly (wbudowane w Operę) pokażą Ci jakie pliki załądowała przeglądarka razem ze stroną. Zobaczysz, że nie ładuje tam tego nieskompresowanego.

0

dobra dzięki i nie męczę więcej. Czyli tak jak myślałem że nie ma. pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1