Foros del Web » Programando para Internet » Jquery »

JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

Estas en el tema de JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS en el foro de Jquery en Foros del Web. Utilizo "SyntaxHighlighter" para dar formato a los codigos que muestro en la pagina, que estan dentro de un DIV contenedor. Utilizo "jquery-1.3.2.min.js" para cargar paginas ...
  #1 (permalink)  
Antiguo 25/04/2009, 16:55
Avatar de juanolo  
Fecha de Ingreso: abril-2008
Mensajes: 251
Antigüedad: 16 años
Puntos: 5
Pregunta JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

Utilizo "SyntaxHighlighter" para dar formato a los codigos que muestro en la pagina, que estan dentro de un DIV contenedor.
Utilizo "jquery-1.3.2.min.js" para cargar paginas externas dentro de ese DIV contenedor y asi no recargar toda la pagina.

Si abro index.php nada mas iniciar, cargo un archivo externo en el DIV contenedor mediante un <?php include ("principal.php");?> y en ese archivo externo tengo un codigo con "SyntaxHighlighter" el codigo me lo formatea bien.
Si una vez cargado el index.php, pincho en un enlace del menu izquierdo que tiene mi web para que cargue otro archivo externo en el DIV contenedor (con jquery para no recargar toda la pagina) cuando carga el nuevo archivo externo en el DIV contenedor, aunque tenga un texto con "SyntaxHighlighter", el texto no lo formatea.

RESUMIENDO...
Cuando carga la pagina y el DIV con un include de php lo hace bien.
Pero cuando actualizo el DIV contenedor con jquery para que no me recargue toda la web, el nuevo contenido no lo colorea.


- ¿Por que solo funciona si recargo toda la web?
- ¿No podria formatear codigo cargando solo el DIV del contenido de la web?
- ¿Hay alguna manera para indicarle a SyntaxHighlighter que la web a cambiado y que debe formatear el nuevo contenido?
(Es que me da la sensacion de que no lo formatea por que no sabe que hay nuevo contenido en ese DIV, o no se que pensar.)

O si no...
- ¿Otra forma mas sencilla de recargar partes de una web sin recargar toda la pagina y que no falle ningun codigo del Frameworks SyntaxHighlighter?

Bueno y aqui parte del codigo por si aclara algo....

En la cabecera del index cargo los JS:
Código html:
Ver original
  1. <link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter/shCore.css" />
  2.     <link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter/shThemeDefault.css" />
  3. <!--Scripts-->    
  4.     <script type="text/javascript" src="javascript/SyntaxHighlighter/shCore.js"></script>
  5.     <script type="text/javascript" src="javascript/SyntaxHighlighter/shBrushXml.js"></script>
  6.     <script type="text/javascript">
  7.         SyntaxHighlighter.all();
  8.     </script>
  9.     <script language="javascript" src="javascript/jquery/jquery-1.3.2.min.js"></script>
  10.     <script language="javascript" src="javascript/recargar.js"></script>

En recargar.js" tengo una funcion que llama a otra funcion de jquery para que me recargue el DIV contenedor sin cargar el resto de la web pasandole un parametro llamado "pagina" que es el archivo externo que quiero cargar:
Código HTML:
function recargar(pagina){	
	/// Invocamos a nuestro script PHP
	$.post(pagina, function(data){
	/// Ponemos la respuesta de nuestro script en el DIV recargado
	$("#contenido").html(data);
	});			
}
Esto seria un enlace del menu que uso para cargar un archivo externo en el contenedor DIV sin recargar toda la pagina, a la funcion recargar, le paso como parametro el archivo externo que quiero que cargue en el DIV junto con un ancla:
Código html:
Ver original
  1. <li><a href="#" onclick="javascript:recargar('introduccion.php#introduccion1');">Lenguajes de tipo cliente</a></li>

Para dar formato al texto, simplemente pongo esta linea en el codigo que quiero colorear en cada archivo externo:
Código html:
Ver original
  1. <pre class="brush: html;">
  2.     alert('Hola mundo');
  3. </pre>

Última edición por juanolo; 26/04/2009 a las 05:57
  #2 (permalink)  
Antiguo 26/04/2009, 02:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Formateo de texto con SyntaxHighlighter y cargar en contenedor div con jqu

Mensaje movido al foro de Frameworks desde Javascript.

Saludos,
  #3 (permalink)  
Antiguo 27/04/2009, 10:19
Avatar de juanolo  
Fecha de Ingreso: abril-2008
Mensajes: 251
Antigüedad: 16 años
Puntos: 5
Respuesta: JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

Nadie sabe por que el SyntaxHighlighter no me colorea los codigos HTML cuando cargo un trozo de pagina en un DIV?
¿Por que solo me colorea los codigos cuando recargo la pagina completamente?

Alguna idea please?
  #4 (permalink)  
Antiguo 07/05/2009, 09:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

Mira, no vi bien el codigo, pero debe ser que al cargar el div nuevo no esta actualizando el dom, esto se puede solucionar de dos formas, utilizando la funcion live() dandole un evento a un nuevo elementro que esta por crearse, otra forma es bajarte el plugin jquery.livequery.js que hace lo mismo pero a este no es necesario enviarle eventos (click, hover, etc) y la ultima opcion es en el callback en la funcion que utilizas para cargar eso que dijiste.

Espero haberte ayudado.

Atte.
Diegoogle.

jquery . cl
O mejor en groups.google.c _ om/group/jquery-es?lnk=
  #5 (permalink)  
Antiguo 07/05/2009, 13:39
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

te doy un ejemplo:

pos pos pos, cuando imprimo una tabla y luego ejecuto un script para que tooodas las tablas se pongan en zebra, pues todas en la pagina cargada se ponen en zebra

pero cuando en la misma página llamo por ajax para que en un div se carge otra tabla, pues pues, en esta nueva, no se muestran los efectos de zebrado, ¿que hacer?

refrescar la función para que se pinte en zebra...

bueno, tu problema es el mismo, debes ejecutar las funciones que usaste al inicio de cargar la page (en si creo que es lo del estilo)...
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #6 (permalink)  
Antiguo 14/05/2009, 06:01
Avatar de juanolo  
Fecha de Ingreso: abril-2008
Mensajes: 251
Antigüedad: 16 años
Puntos: 5
Pregunta Respuesta: JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

Cita:
Iniciado por Diegoogle Ver Mensaje
Mira, no vi bien el codigo, pero debe ser que al cargar el div nuevo no esta actualizando el dom, esto se puede solucionar de dos formas, utilizando la funcion live() dandole un evento a un nuevo elementro que esta por crearse, otra forma es bajarte el plugin jquery.livequery.js que hace lo mismo pero a este no es necesario enviarle eventos (click, hover, etc) y la ultima opcion es en el callback en la funcion que utilizas para cargar eso que dijiste.

Espero haberte ayudado.

Atte.
Diegoogle.

jquery . cl
O mejor en groups.google.c _ om/group/jquery-es?lnk=
Y como se utilizan esas funciones? de que manera las podria poner yo en mi codigo? ¿Cual es la manera mas facil?

Es que soy muy nuevo en esto de ajax y no se como podria aplicar alguna de esas soluciones a mi codigo.
  #7 (permalink)  
Antiguo 18/05/2009, 12:32
Avatar de juanolo  
Fecha de Ingreso: abril-2008
Mensajes: 251
Antigüedad: 16 años
Puntos: 5
Respuesta: JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

Voy a preguntar esto en la seccion de ajax que creo que tiene mas que ver eso que con el framework, por que claro, es que no me funciona ningun javascript no solo el SyntaxHighlighter y para cargar algo solo en un div supuestamente esto es ajax. (como soy tan nuevo en esto...) xD
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.