Ich bin eine Seite, die einige Interaktion durch Javascript zur Verfügung gestellt hat. Nur als Beispiel: Links, die eine AJAX-Anfrage senden, um den Inhalt von Artikeln zu erhalten und dann diese Daten in einem Div anzuzeigen. Natürlich muss in diesem Beispiel jeder Link eine zusätzliche Information speichern: die ID des Artikels. Die Art und Weise, wie ich es im Fall war, um diese Informationen in der href-Link dies setzen behandelt:
<a class="article" href="#5">
Ich verwende dann jQuery, um die a.article-Elemente zu finden und den entsprechenden Event-Handler anzuhängen. (halten Sie sich nicht zu sehr mit der Benutzerfreundlichkeit oder Semantik auf, es ist nur ein Beispiel)
Wie auch immer, diese Methode funktioniert, aber sie riecht und ist überhaupt nicht erweiterbar (was passiert, wenn die Klickfunktion mehr als einen Parameter hat? was, wenn einige dieser Parameter optional sind?)
Die nahe liegende Antwort war die Verwendung von Attributen für das Element. Ich meine, dafür sind sie doch da, oder? (Gewissermaßen).
<a articleid="5" href="link/for/non-js-users.html">
En meine letzte Frage Ich habe gefragt, ob diese Methode gültig ist, und es hat sich herausgestellt, dass sie weder gültig noch zuverlässig ist, es sei denn, ich definiere meine eigene DTD (was ich nicht tue). Eine gängige Antwort war, die Daten in die class
Attribut (obwohl das an meinem schlecht gewählten Beispiel liegen könnte), aber für mich riecht das noch mehr. Ja, es ist technisch gültig, aber es ist keine gute Lösung.
Eine andere Methode, die ich in der Vergangenheit verwendet habe, bestand darin, etwas JS zu generieren und es in die Seite in einem <script>
Tag und erstellt eine Struktur, die mit dem Objekt verknüpft wird.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Aber das kann sehr mühsam sein und ist im Allgemeinen sehr unordentlich.
Um also zur Frage zu kommen, wie speichert man beliebige Informationen für HTML-Tags ?