Salve!
Ho un problema con una libreria che sto costruendo, ovvero la libreria pur essendo perfettamente visibile alla pagina html di prova, non trova un elemento collegato.
Questo il codice definito:
In pratica richiamando per prova la funzione get() mi da come errore: Uncaught TypeError: Cannot call method 'get' of undefined (in Chrome).codice:var $ = function(){}; // 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 */ $.prototype.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
Ho provato e riprovato a guardare se ci fossero errori di sintassi nel codice ma non ne vedo.
La funzione la richiamo in modo semplice così da fornirmi il colore di sfondo di un elemento HTML che ho creato appositamente, tanto per vedere se funziona.
Qualcuno saprebbe aiutarmi a trovare l'errore, io proprio non ci riescocodice:alert('Colore: ' + $.Element.get('prova').style.backgroundColor);![]()

Rispondi quotando
