guarda è un cosa un pelo diversa (e se conosci un minimo le HTML table ti rendi conto del perché), tra l'altro mi viene un hictus al vedere la m###a di codice che ho scritto...
dunque fasom le cose per bene:
Su Firefox funzica, manon ho avuto il tempo di provarlo anche su IE (su Safari3, Opera9 e Google Chrome va). Fai attenzione a definire le funzioni PRIMA di FunctionToApply, sennò te lo ritrovi vuoto.Codice PHP:var SelectRow = function(){
var tr = this.parentNode;
var tbody = tr.parentNode;
for(var tmptr = tbody.firstChild; tmptr != null; tmptr = tmptr.nextSibling){
if(tmptr.nodeType == 1){
if(tmptr.tagName.toUpperCase() == "TR"){
var colorToApply = unselectColor;
if(tmptr == tr) colorToApply = selectColor;
for(var tmptd = tmptr.firstChild; tmptd != null; tmptd = tmptd.nextSibling){
if(tmptd.nodeType == 1 && tmptd.tagName.toUpperCase() == "TD")
tmptd.style.backgroundColor = colorToApply;
}
}
}
}
}
var SelectColumn = function(){
var tr = this.parentNode;
var indexTD = 0;
var allCell = tr.getElementsByTagName("td");
for(var i = 0; i < allCell.length; i++){
if(allCell[i] == this) indexTD = i;
}
var tbody = tr.parentNode;
for(var tmptr = tbody.firstChild; tmptr != null; tmptr = tmptr.nextSibling){
if(tmptr.nodeType == 1){
if(tmptr.tagName.toUpperCase() == "TR"){
var index = 0;
for(var tmptd = tmptr.firstChild; tmptd != null; tmptd = tmptd.nextSibling){
if(tmptd.nodeType == 1 && tmptd.tagName.toUpperCase() == "TD"){
var colorToApply = unselectColor;
if(indexTD == index++) colorToApply = selectColor;
tmptd.style.backgroundColor = colorToApply;
}
}
}
}
}
}
var FunctionToApply = SelectColumn; //Qui ci metti la funzione che vuoi usare se selezionare la riga o la colonna
var tableID = "IDTabella";
var selectColor = "#cecece", unselectColor = "#FFF";
var Init = function(){
var theTable = document.getElementById(tableID);
if(!theTable) throw "Something does not work: are you sure of the Table ID?";
var tmp = theTable.getElementsByTagName("tbody")[0] || theTable;
var cells = tmp.getElementsByTagName("td");
for(var i = 0; i < cells.length; i++){
cells[i].onclick = FunctionToApply;
}
}
window.onload = Init;

Rispondi quotando