Hola!
Tengo un problema con ajax. Os lo relato a ver si podéis saber que está pasando.
Tengo una web en la que cargo mucho contenido con AJAX.
Cargo el contenido que necesito, en cualquier div de etiqueta "capainterior" de la web con la función de ajax:
ajax(_pagina,valorget,valorpost,capainterior,texto carga);
Supongamos que _pagina es pagina.php?area=clientes
Dicha "_pagina", no es una página html completa con HEAD BODY y demás. Únicamente tiene el código que necesito, que son unos cuantos divs, y un textarea
Entonces dentro del div sobre el que he cargado el contenido(con ajax), tengo un textarea que utiliza una propiedad de jquery para auto - redimensionarse.
Simplemente utiliza el class. Por ejemplo:
Mensaje:<textarea name="textoaenviar" class="areasdetexto expand" ></textarea>
Luego en la página principal tengo:
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="misfunciones.js"></script>
Y dentro de misfunciones.js la función de jquery, y además lo siguiente:
// initialize all expanding textareas
jQuery(document).ready(function() {
jQuery("textarea[class*=expand]").TextAreaExpander("70","500");
});
Como véis, lo único que relaciona al textarea con la función de jquery es el "expand".
El caso es que no consigo que funcione el autoredimensiona cuando el textarea lo cargo con ajax. Lo curioso, es que si cargo el contenido del div por separado en otra ventana del navegador, si que funciona!!! (Siempre que le ponga el body, head, y las funciones de javascript claro)
Creo que al cargarlo mediante ajax, hace algo extraño, que las funciones de jquery no ven... Por pensar algo podría ser que al cargar el contenido de la página en un div... el textarea que ha aparecido, ya no está asociado al jquery, y habría que refrescar de alguna manera el jquery. Pero no sé...
También se me ha ocurrido que "_pagina" se cargue como si fuera una página html entera, dentro del div. Es decir , tendría el body, head, las funciones de javascript, CSS y demás, pero tampoco ha funcionado. (Tal como he dicho antes, esto si que funciona, si la página pagina.php?area=clientes la ejecuto por separado, sin utilizar ajax...)
La función de ajax que utilizo es esta:
function ajaxgeneral(_pagina,valorget,valorpost,capainterio r,textocarga){
ajax=objetus(_pagina);
if(valorpost!="")
{
ajax.open("POST", _pagina+"?"+valorget+"&tiempo="+new Date().getTime(),true);
}
else
{
ajax.open("GET", _pagina+"?"+valorget+"&tiempo="+new Date().getTime(),true);
}
ajax.onreadystatechange=function()
{
if (ajax.readyState==1)
{
document.getElementById(capa).innerHTML = textocarga;
}
if (ajax.readyState==4)
{
if(ajax.status==200)
{
document.getElementById(capa).innerHTML = ajax.responseText;
}
else if(ajax.status==404)
{
document.getElementById(capa).innerHTML = "La direccion no existe";
}
else
{
document.getElementById(capa).innerHTML = "Error ";
}
}
}
if(valorpost!="")
{
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(valorpost);
}
else
{
ajax.send(null);
}
}
Y bueno, ese es el problema... A ver si alguna alma caritativa puede echarme un cable, porque llevo ya unos cuantos días rompiendome la cabeza y no hay manera
Perdonar a todos por el tocho!! Y gracias!