Tworzę stronę, która zawiera pewne interakcje zapewniane przez javascript. Na przykład: linki, które wysyłają żądanie AJAX w celu pobrania treści artykułów, a następnie wyświetlenia tych danych w div. Oczywiście w tym przykładzie potrzebuję każdego linku do przechowywania dodatkowej informacji: identyfikatora artykułu. Sposób, w jaki sobie z tym poradziłem, to umieszczenie tych informacji w odnośniku link:
<a class="article" href="#5">
Następnie używam jQuery, aby znaleźć elementy a.article i dołączyć odpowiednią procedurę obsługi zdarzeń. (nie przejmuj się zbytnio użytecznością lub semantyką tutaj, to tylko przykład)
W każdym razie ta metoda działa, ale trochę pachnie i wcale nie jest rozszerzalna (co się stanie, jeśli funkcja kliknięcia ma więcej niż jeden parametr? Co, jeśli niektóre z tych parametrów są opcjonalne?)
Natychmiast oczywistą odpowiedzią było użycie atrybutów na elemencie. To znaczy po to są, prawda? (Rodzaj).
<a articleid="5" href="link/for/non-js-users.html">
W moim ostatnim pytaniu zapytałem, czy ta metoda jest poprawna, i okazuje się, że poza zdefiniowaniem własnego DTD (nie wiem), to nie, nie jest poprawna ani wiarygodna. Częstą reakcją było umieszczenie danych w class
atrybucie (choć mogło to wynikać z mojego źle wybranego przykładu), ale dla mnie to pachnie jeszcze bardziej. Tak, jest technicznie poprawny, ale nie jest to świetne rozwiązanie.
Inną metodą, której użyłem w przeszłości, było wygenerowanie JS i wstawienie go do strony w <script>
tagu, tworząc strukturę, która byłaby powiązana z obiektem.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Ale może to być prawdziwy problem w utrzymaniu tyłka i ogólnie jest po prostu bardzo niechlujny.
Aby przejść do pytania, w jaki sposób przechowujesz dowolne informacje dla tagów HTML ?