Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]json w class = ... ?
Forum PHP.pl > Forum > Przedszkole
konrados
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?
Crozin
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
hind
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
konrados
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.