Esto me funciona correctamente:
Código:
osea si hago lo que quiero por separado me asigna los enlaces perfectamente y me abre las ventanas con susarchivos pdf perfectamente pero si lo intento hacer con un bucle for que es lo suyo porque la longitud del array eManualSep va a ser variable me da errores, por ejemplo tal cual pongo el siguiente codigo me habilita todos los enlaces que abren el archivo del ultimo elemento del array.// en eManualSep esta una cadena de texto donde van por parejas el nombre del elemento1 y la ruta del archivo que hay que abrir. //seria asi elemento1--rutaelemento1--elemento2--rutaelemento2... //tras el split seria eManualSep[0]=elemento1, eManualSep[1]=rutaelemento1... var eManualSep = eManual.split('--'); this.nuevo_evento(document.getElementById('manual_'+eManualSep[0]), 'click', function(){window.open(eManualSep[1],'ventanaDatos','width=450,height=500')}); this.nuevo_evento(document.getElementById('manual_'+eManualSep[2]), 'click', function(){window.open(eManualSep[3],'ventanaDatos','width=450,height=500')}); this.nuevo_evento(document.getElementById('manual_'+eManualSep[3]), 'click', function(){window.open(eManualSep[5],'ventanaDatos','width=450,height=500')});
En caso de que sean 3 elementos los del array, el enlace1 me abre el archivo3, el enlace2 me abre el archivo 3 y el enlace 3 me abre el 3 tb y no veo el porque.
Código:
Alguna idea porque lo veo tan simple y no me funciona que estoy ofuscado.//el array va opr parejas 0-1,2-3.... que son elemento1-rutaelemento1,elemento2-rutaelemento2..... de ahi que ponga la variable l var eManualSep = eManual.split('--'); var l=0; for (var r=0;r<=((eManualSep.length/2)-1);r++) { var zp= l+1; this.nuevo_evento(document.getElementById('manual_'+eManualSep[l]), 'click', function(){window.open(eManualSep[zp],'ventanaDatos','width=450,height=500')}); l=l+2; }
Funcion que añade los eventos:
this.nuevo_evento= function(elemento, evento, funcion){
if (elemento.addEventListener) {
elemento.addEventListener(evento, funcion, false);
} else {
elemento.attachEvent("on"+evento, funcion);
}
}
Un salu2.