PDA

View Full Version : [javascript] problema onclick


titanum
24-08-2011, 15:27
Ciao ragazzi, sono sempre al lavoro sulla scacchiera. Ho creato una funzione dinamica che mi permetterā di aggiornarla ad ogni mossa, ma ho un problema: devo fare in modo che al click del mouse su una casella si attivi una funzione, ho scritto

td.onclik=seleziona(c);

ma non funziona, la funzione esegue quando viene creata la casella e non la crea nemmeno tutta. Come posso risolvere?
Vi posto il resto della funzione, ed anche la funzione che deve essere eseguita quando si clicca sulla casella.


function creaScacchiera()

{
tabella=document.getElementById("tab").getElementsByTagName("TBODY")[0];

var c=0; //contatore di caselle, serve per prendere un elemento nella casella

n=0;//serve per capire il colore della scacchiera, la prima casella add essere disegnata č a8 che č bianca, poi prosegue per riga scendendo

for(i=0;i<8;i++)

{

var n=0;

if(i%2==0)

n=0;

else

n=1;



row=document.createElement("TR");

for(j=0;j<8;j++)

{
td=document.createElement("TD");

if(n%2==0)

td.id="bianco";

else

td.id="nero";


td.onclick="seleziona("+c+")"; //non funziona

td.appendChild(document.createTextNode(caselle[c]));

row.appendChild(td);

n++;

c++;

}
tabella.appendChild(row);

}

}

function seleziona(n)

{

tmp=caselle[n];

if (tmp=="" &&flag>-1)

{

caselle[n]=caselle[flag];

caselle[flag]="";

flag=-1;

cancella();

//creaScacchiera();

}

else

flag=n;

alert("casella "+n);

}

Dr Nick Riviera
24-08-2011, 16:04
Prova una cosa di questo tipo:

td.onclick = function() { seleziona(c); }

Se non ti vede "c" fai delle prove ma almeno in questo modo ti funziona e ti funziona su tutti i browser.