Originariamente inviato da Marcolino's
[…] a me andava di renderla modulare in modo da caricare a run time solo gli oggetti che usavo davvero e di farlo appunto con prototype, ma mi da quello strano errore, mentre in questa che ho messo qui funziona benissimo.
Adesso ho capito qual è il tuo problema. Devi fare così per tutte le proprietà:
codice:
var $ = {}; // Oggetto vuoto e pronto per la modifica.
var elements = []; // Utilizzata per concatenare più oggetti.
/**
* Prende l'IDentificativo dell'elemento in oggetto (funzione cross browser)
* Uso: var e = $.Element.get('pippo').value; Se 'pippo' è un controllo tipo INPUT, in value c'è il suo valore
*/
// carico il primo modulo
$.Element = {
/**
* Metodo: cache
Mette nella cache un elemento DOM (metodo privato di get: vedi sotto)
Argomenti:
- [string] id : l'id dell'elemento desiderato
*/
cache: function(id) {
if(!elements[id]) {
if (document.getElementById) { // Mozilla + IE6/7/8/9
elements[id] = document.getElementById(id);
} else if (document.all) { // IE4
elements[id] = document.all[id];
} else if (document.layers) { // Netscape 4
elements[id] = document.layers[id];
}
}
return elements[id];
}, // cache()
/**
* Metodo: get
Restituisce un elemento DOM basandosi sull'id dello stesso
Argomenti:
- [string] id : l'id dell'elemento desiderato
Esempio d'uso: var valore = $.Element.get('pippo').value;
*/
get: function(id) {
var e = false;
if (typeof id == 'string') { // Se l'ID è una stringa lo processo
e = cache(id);
}
return e;
} // get()
}; // Element
Vedrai che così ti funzionerà. Spero che tu abbia capito a cosa servono i prototipi…