Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]json w class = ... ?
konrados
post 12.10.2010, 11:47:30
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Hej,

Tak sobie przeglądam wykop.pl bo też korzystam z jquery i chciałem zobaczyć jak pewne rzeczy są zrobione.

No i natknąłem się na coś takiego:

  1. <a class="minus-icon votebtn {id:3103819,action:'minus',handler:'comment'}" rel="nofollow" href="http://www.wykop.pl/comment/voteminus/491941/3103819/">-</a>


Jest to kod odpowiedzialny za przycisk "minus" przy komentarzu a id to pewnie id komentarza.

Pytanie: co to jest to {id:3103819,action: ...} tzn. wiem, że to json, ale czy tak można w atrybucie klasy takie rzeczy wrzucać? A jeśli tak to jak potem te informacje wyciągnąć (np. używając jquery)?

No i może się domyślacie po co to, skoro w linku też jest i operacja i id komentarza?
Go to the top of the page
+Quote Post
Crozin
post 12.10.2010, 11:52:54
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Zauważ, że jest tam też podane co ma zostać wywołane (comment:minus). Być może mają tam jakiś system, który automatycznie wywoła odpowiedni kod JS z odpowiednimi parametrami (nie muszą się bawić w jakieś $("selektor").each(..)).

Nie mniej jednak nie uważam tego za zbyt dobre rozwiązanie - dużo lepiej byłoby skorzystać z HTML5-owych atrybutów data-*, np.:
Kod
<a ... data-action="minus" data-handler="comment" data-param="id=123">Downvote</a>
Później być może mają coś na kształt:
[JAVASCRIPT] pobierz, plaintext
  1. /* Pseudo kod */
  2. $("[data-handler][data-action]").each(function() {
  3. cosTam[$(this).attr("data-handler")].apply(this, $(this).attr("data-params"));
  4. });
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Crozin 12.10.2010, 11:56:12
Go to the top of the page
+Quote Post
hind
post 12.10.2010, 11:58:25
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

Ostrzeżenie: (0%)
-----


dziwny sposób dodawania dodatkowych info (ja zwykle urzywam 'ref', w html5 przewidziano data-*)
wyciągnąć poprzez $('#jakies_id').attr('class');
dla przeglądarki to bez znaczenia , najpierw poszuka klasy minus-icon, potem votebtn a na końcu {id:3103819,action:'minus',handler:'comment'} (której nie znajdzie i oleje)

po co tak? może komuś się wydawało to dobrym rozwiązaniem w jakimś magicznym zastosowaniu
Go to the top of the page
+Quote Post
konrados
post 12.10.2010, 12:10:02
Post #4





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Dzięki Wam!

Rozwiązanie z data-... też mi się bardziej widzi, chociaż tego kodu jquery nie za bardzo kumam:( niemniej rozumiem, że potem będę mógł dostać się do tych data-... albo nawet dodać event "click" do a href... w których np. data-action=="minus" prawda?

edit:dobra, już widzę, że tak. Dzięki raz jeszcze.

Ten post edytował konrados 12.10.2010, 12:44:17
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:25