Io in genere evitare di dover includere la libreria jQuery nei miei scritti, ma ho solo recentemente sono imbattuto in jQuery $ .data() 's funzioni possibilità di associare i dati, sotto forma di coppie di valori chiave, oggetti & anche le funzioni, con qualsiasi elemento.
Da quello che ho letto, la funzione $ .data() di jQuery ha anche protezioni incorporate che prevengono la perdita di memoria associata a tali pratiche, ma è eccessivo includere l'intera libreria JQ per quella singola funzione.
Qualcuno sa di un'alternativa nativa?
EDIT per farmi più chiaro, non sto cercando la funzione nativa per recuperare gli attributi degli elementi. $ .data() API di jQuery va ben oltre tale utilizzo, che si estende per la sua capacità di associare oggetti JavaScript & funzioni con nodi elemento jQuery.
Questo articolo (http://tutorialzine.com/2010/11/jquery-data-method/) tocca questo utilizzo, ma come esempio lo sto attualmente utilizzando per associare un'animazione della linea temporale GSAP a un oggetto, in modo che possa accedere e chiamare la funzione di animazione .reverse() di GSAP Timeline all'esterno di la funzione che è stata creata. Per esempio:
function doAnimation(){
var element = document.createElement('div'),
timeline = new TimelineMax({....GSAP related fns...}),
options = {
....
timeline: timeline
};
$(element).data('options', options);
}
function reverseAnimation($element){
var options = $element.data('options'),
previouslyCreatedTimeline = options.timeline;
previouslyCreatedTimeline.reverse();
}
Forse non l'esempio più chiaro, se non sei un utente di GSAP, ma in sostanza, il metodo $ .data() mi ha permesso di associare un oggetto JavaScript con un elemento, in modo che io può accedere ai suoi metodi in una funzione al di fuori del suo ambito originale.
possibile duplicato di [Imposta attributo dati utilizzando JavaScript] (http://stackoverflow.com/questions/11286661/set-data-attribute-using-javascript) – DrCord
No, non un duplicato. Sebbene il metodo della funzione dati di jquery sia utilizzato principalmente per attributi di dati attualmente su un elemento, sto parlando del suo utilizzo per associarlo a oggetti javascript effettivi – AJeezy9
Perché non puoi semplicemente fare qualcosa come 'document.getElementById (" foo "). bar = {baz: function() {}} '? –