Ciao a tutti ho un problema a cui non riesco a venirne a capo...
Vorrei che al click su un determinato link,mi si creasse con il dom una nuova riga nella tabella e mi creasse al suo interno 2 div...
Una cosa relativamente semplice ma purtroppo con explorer non mi funziona!!
all'ultima istruzione quando vado ad eseguire l'innerHTML mi dice 'errore di run time' mentre con mozilla funziona tutto alla perfezione....
dove sbaglio secondo voi? Vi posto il codice della funzione..
codice:
var FavoriteExtra =
{
// in questa funzione creo con DOM la struttura per metterci i contenuti con la paginazione
// ricevo in ingresso (tipo di contenuto extra cliccato(LK-IMG-ED), ID del contenuto)
openExtraLink: function(extraType, IDBox)
{
var mynewRigaName = 'rigaExtraType-'+IDBox; // nome della riga con i contenuti di paginazione
var mynewRigaRef = document.getElementById(mynewRigaName);
if (mynewRigaRef == null) // se il box con i contenuti di paginazione non esiste lo creo
{
var newExtraTR = document.createElement("tr"); // creo la nuova riga
var newExtraTD = document.createElement("td"); // creo la cella
newExtraTR.id = 'rigaExtraType-'+IDBox; // assegno l' id alla nuova riga
var closeDiv = document.createElement("div"); // creo il div di chiusura
var closeDivA = document.createElement("a"); // creo il link per inserirlo nel div di chiusura
closeDivA.id = 'closeThis-'+IDBox+'-'+extraType;
closeDivA.href = '#no-up'; // assegno il valore di href
closeDivA.onclick = function(){ FavoriteExtra.closeExtraLink(extraType, IDBox) } // assegno la funzione di chiusura del tr al link
var closeDivMessage = document.createTextNode('Chiudi'); // creo il nodo testuale da inserire al link
closeDivA.appendChild(closeDivMessage); // appendo il messaggio al link
closeDiv.appendChild(closeDivA); // appendo il link al div
newExtraTD.appendChild(closeDiv); // appendo il div alla td
var newExtraDiv = document.createElement("div"); // creo il DIV dove inserisco i contenuti
newExtraDiv.id='extraDiv-'+IDBox; // assegno il nuovo id al DIV
newExtraTD.appendChild(newExtraDiv); // appendo il div alla TD
newExtraTR.appendChild(newExtraTD); // appendo la TD alla riga TR
var presentName = 'extra-'+IDBox; // ID della riga già presente a cui dovrò appendere quella nuova
var presentChild = document.getElementById(presentName);
presentChild.appendChild(newExtraTR);
// adesso devo eliminare il link che ha cliccato per espandere e sostituirlo con il solo testo
var clickLink = document.getElementById(extraType+'-'+IDBox); // punto al link (lo span che lo contiene)
clickLink.replaceChild(document.createTextNode(extraType), clickLink.firstChild); // lo rimuovo dalla TD che lo contiene
var pagID = 'extraDiv-'+IDBox;
document.getElementById(pagID).innerHTML='inserisco il testo nel div';
}
else
{
var closeButton1 = document.getElementById('closeThis-'+IDBox+'-LK');
var closeButton2 = document.getElementById('closeThis-'+IDBox+'-IMG');
var closeButton3 = document.getElementById('closeThis-'+IDBox+'-ED');
if(closeButton1)
{
var closeButtonID = closeButton1.id; // ho un ID formato da 'closeThis-'+IDBox+'-LK'
}
else if(closeButton2)
{
var closeButtonID = closeButton2.id; // ho un ID formato da 'closeThis-'+IDBox+'-IMG'
}
else if(closeButton3)
{
var closeButtonID = closeButton3.id; // ho un ID formato da 'closeThis-'+IDBox+'-ED'
}
var splittedID = closeButtonID.split("-"); // lo splitto in modo da avere il nome della funzione che l'ha richiamato in POS 2
var functName = splittedID[2];
FavoriteExtra.closeExtraLink(functName, IDBox);
FavoriteExtra.openExtraLink(extraType, IDBox);
}
},
closeExtraLink: function(extraType, IDBox)
{
// elimino la riga
var closeRow = document.getElementById('rigaExtraType-'+IDBox);
if(closeRow){
closeRow.parentNode.removeChild(closeRow);
}
// ricreo il link
var rigenerateLink = document.createElement("a");
rigenerateLink.appendChild(document.createTextNode(extraType));
rigenerateLink.href = "#no-up";
rigenerateLink.onclick = function(){ FavoriteExtra.openExtraLink(extraType, IDBox) } // gli associo di nuovo la funzione per aprire il box
var clickLink = document.getElementById(extraType+'-'+IDBox); // punto al link (lo span che lo contiene)
clickLink.replaceChild(rigenerateLink, clickLink.firstChild); // lo rimuovo dalla TD che lo contiene
}
};