Ciao a tutti, premetto che sono nuova in javascript... sto cercando di usare js ad oggetti, ed ho capito che è piuttosto diverso dagli altri linguaggi OOP. Questa è l'implementazione del mio oggetto:
codice:
function tabella(){
var ultimo=0;
var idmeno="meno"+ultimo;
this.tabella=document.createElement('table');
this.riga=[];
this.rigatitolo=document.createElement('tr');
this.coltitolo=document.createElement('td');
this.coltitolo.setAttribute('colspan',3);
this.riga[ultimo]=document.createElement('tr');
this.colspec=document.createElement('td');
this.colval=document.createElement('td');
this.colpiu=document.createElement('td');
this.titolo=document.createElement('input');
this.titolo.setAttribute('type','text');
this.titolo.setAttribute('class','titolo');
this.specifica=document.createElement('input');
this.specifica.setAttribute('type','text');
this.specifica.setAttribute('class','specifica');
this.valore=document.createElement('input');
this.valore.setAttribute('type','text');
this.valore.setAttribute('class','valore');
this.piu=document.createElement('div');
this.piu.setAttribute('class','piu');
this.piu.setAttribute('onclick',"this.aggiungispecifica()");
this.piu.innerHTML="+";
this.meno=document.createElement('div');
this.meno.setAttribute('onclick','this.rimuovispecifica()');
this.meno.setAttribute('class','meno');
this.meno.innerHTML="-";
this.meno.setAttribute('id',idmeno);
this.creatabella=function ()
{
document.getElementById('contenitore').appendChild(this.tabella);
this.tabella.appendChild(this.rigatitolo);
this.rigatitolo.appendChild(this.coltitolo);
this.coltitolo.appendChild(this.titolo);
this.tabella.appendChild(this.riga[0]);
this.riga[0].appendChild(this.colspec);
this.riga[0].appendChild(this.colval);
this.riga[0].appendChild(this.colpiu);
this.colspec.appendChild(this.specifica);
this.colval.appendChild(this.valore);
this.colpiu.appendChild(this.piu);
ultimo++;
}
this.aggiungispecifica=function()
{
alert("ciao");
}
}
E questa è la funzione dove creo l'oggetto che richiamo onload del body:
codice:
function setta()
{
var tab=[];
tab[0]=new tabella();
tab[0].creatabella();
}
Questo è l'output:
esempio.jpg
Il problema: quando clicco il '+' dovrebbe invocare il metodo aggiungispecifica(), ma semplicemente non lo fa. Creando invece una funzione al di fuori dell'oggetto funziona. Qualcuno sa dirmi dove ho sbagliato? Grazie in anticipo