Sto realizzando una pagina con alcune interazioni fornite da JavaScript. Ad esempio: collegamenti che inviano una richiesta AJAX per ottenere il contenuto degli articoli e quindi visualizzare tali dati in un div. Ovviamente in questo esempio, ho bisogno di ogni link per memorizzare un po 'di informazioni in più: l'id dell'articolo. Il modo in cui l'ho gestita nel caso in cui è stato quello di mettere quelle informazioni nel collegamento href questo:
<a class="article" href="#5">
Quindi uso jQuery per trovare gli elementi a.article e allego il gestore eventi appropriato. (non impazzire troppo sull'usabilità o sulla semantica qui, è solo un esempio)
Ad ogni modo, questo metodo funziona, ma puzza un po 'e non è affatto estensibile (cosa succede se la funzione clic ha più di un parametro? Cosa succede se alcuni di questi parametri sono opzionali?)
La risposta immediatamente ovvia era usare gli attributi sull'elemento. Voglio dire, ecco a cosa servono, vero? (Tipo).
<a articleid="5" href="link/for/non-js-users.html">
Nella mia recente domanda ho chiesto se questo metodo fosse valido e si scopre che a corto di definire il mio DTD (non lo faccio), quindi no, non è valido o affidabile. Una risposta comune è stata quella di inserire i dati classnell'attributo (anche se questo potrebbe essere stato a causa del mio esempio scelto male), ma per me, questo ha ancora più odore. Sì, è tecnicamente valido, ma non è un'ottima soluzione.
Un altro metodo che avevo usato in passato era generare un po 'di JS e inserirlo nella pagina in un <script>tag, creando una struttura che si associasse all'oggetto.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Ma questo può essere un vero dolore nel culo da mantenere ed è generalmente molto disordinato.
Quindi, per arrivare alla domanda, come archiviate informazioni arbitrarie per i tag HTML ?