Código Javascript :
function crear_tMulti(varia1, varia2) { mult_select(varia1, varia2); var tabla_sh = document.getElementById("multiTbShow"); var rows_exist = document.getElementById("multiTbShow").rows.length; alert(rows_exist); if (rows_exist > 2) { for (var d=2; d<rows_exist; d++) { tabla_sh.deleteRow(2); } for (var a=2; a<num_video+2; a++) { var c = a - 2; var filaX = tabla_sh.insertRow(a); filaX.onmouseover = function() { this.style.cursor="pointer"; this.style.backgroundColor="#C8E5FC"; } filaX.onmouseout = function() { this.style.cursor="pointer"; this.style.backgroundColor="#F0F8FE"; } filaX.onclick = function() { if (varia1 != "imagenes") { tabla_sh.rows[0].cells[0].innerHTML = "<object width="+vLargo[c]+" height="+vAncho[c]+"><param name='movie' value="+vUrl_video[c]+"></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src="+vUrl_video[c]+" type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width="+vLargo[c]+" height="+vAncho[c]+"></embed></object>" }else{ ventana_pop2(vUrl_video[c], vLargo[c], vAncho[c]); } } var celda1 = filaX.insertCell(0); var celda2 = filaX.insertCell(1); var celda3 = filaX.insertCell(2); celda1.setAttribute('align', 'center'); celda2.setAttribute('align', 'center'); celda3.setAttribute('align', 'center'); celda1.innerHTML = vNombre_video[c]; celda2.innerHTML = vFecha_video[c]; celda3.innerHTML = vDesc_video[c]; } }else{ for (var a=2; a<num_video+2; a++) { var c = a - 2; var filaX = tabla_sh.insertRow(a); filaX.onmouseover = function() { this.style.cursor="pointer"; this.style.backgroundColor="#C8E5FC"; } filaX.onmouseout = function() { this.style.cursor="pointer"; this.style.backgroundColor="#F0F8FE"; } filaX.onclick = function() { if (varia1 != "imagenes") { tabla_sh.rows[0].cells[0].innerHTML = "<object width="+vLargo[c]+" height="+vAncho[c]+"><param name='movie' value="+vUrl_video[c]+"></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src="+vUrl_video[c]+" type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width="+vLargo[c]+" height="+vAncho[c]+"></embed></object>"; }else{ ventana_pop2(vUrl_video[c], vLargo[c], vAncho[c]); } } var celda1 = filaX.insertCell(0); var celda2 = filaX.insertCell(1); var celda3 = filaX.insertCell(2); celda1.setAttribute('align', 'center'); celda2.setAttribute('align', 'center'); celda3.setAttribute('align', 'center'); celda1.innerHTML = vNombre_video[c]; celda2.innerHTML = vFecha_video[c]; celda3.innerHTML = vDesc_video[c]; } } } function mult_select(media, type) { var multiXML = docXML.getElementsByTagName(media)[0]; num_video = multiXML.getElementsByTagName(type).length; for (var b=0; b<num_video; b++) { video_XML[b] = multiXML.getElementsByTagName(type)[b]; vFecha_video[b] = video_XML[b].attributes.item(0).nodeValue; vNombre_video[b] = video_XML[b].attributes.item(1).nodeValue; vUrl_video[b] = video_XML[b].attributes.item(2).nodeValue; vLargo[b] = video_XML[b].attributes.item(3).nodeValue; vAncho[b] = video_XML[b].attributes.item(4).nodeValue; vDesc_video[b] = video_XML[b].childNodes[0].nodeValue; } }
mult_select es una funcion que almacena en variables todos los datos recogidos de cierto segmento de un XML enviado por responseXML a traves de ajax(comprobado que el xml esta bien formado). media y type son los nombres de la etiqueta y subetiqueta respectivamente que contienen los datos.
Osea supongamos que media tiene el valor "video", dentro de la etiqueta video hay 5 enlaces a videos por lo tanto hay 5 subetiquetas llamadas "videoFile" cada una de ellas conteniendo parametros y contenido respectivo a ese video (enlace, dimensiones, descripcion del tema,etc).
Siendo asi esta funcion almacena en variables estos parametros y contenido.
la funcion crear_tMulti(varia1, varia2) crea tantas filas sean necesarias como enlaces encontrados, luego asigno colores para sombrear cuando el mouse pasa sobre la tabla creada y cuando sale devolver el mismo color. Hasta ahi todo bien, el problema viene cuando le asigno los parametros a la fila 0 de la tabla q es la que muestra el video de youtube. Creo el <object> a manera de cadena y lo que cambia dinamicamente seria los enlaces y las dimensiones, pero cuando doy click en las filas creadas siempre despiden el ultimo enlace, como podria hacer para asignarle correctamente sus enlaces a cada fila?
Espero haber sido lo mas claro posible en todo caso preguntenme para aclarar si no se entendio algo.
Gracias de antemano