Muy buenas Srs, vuelvo por éste foro para consultar una duda.

Resulta que estoy programando una web y uso javascript para cargar enlaces y demás.... gracias a que con ello también puedo aplicar unos efectos y tal.

Les muestro un code similar y que les sea intuitivo y una vez lo vean por encima les digo qué pasa.

[Archivo principal]

Código:

Código: Seleccionar todo

<body>.... contenidos.... <DIV CLASS="items"></DIV>

[Archivo 1 a cargar]

Código:

Código: Seleccionar todo

... contenidos del archivo 1.... <DIV CLASS"caja de texto donde quiero cargar el Archivo 2">.......
Enlace a Archivo2
Enlace a Archivo3
Enlace a Archivo4

[JS]

Código:

Código: Seleccionar todo

$(document).ready(function(){
$(".items").load("pages/inicio.php");
   $("#menu a").each(function(){
      var href = $(this).attr("HREF");
      $(this).attr({ href: "#"});
	  
      $(this).click(function(evento){
	  evento.preventDefault();
	  $(".items").fadeOut("slow", loaditems);
	  $(".load").remove();
	  $(".carga").append('<DIV CLASS="load"></DIV>');
	  $(".load").fadeIn('normal');

		function loaditems()
		{
			$(".items").load(href, scrll);
		}
		function scrll()
		{
		$(".scrollable").scrollable({ vertical: true, keyboard: true, mousewheel: true, speed: 400});
		$(".scrollable").scrollable().begin(0);
		$(".items").fadeIn("slow", hideLoader);
		}
		function hideLoader()
		{
			$(".load").fadeOut("normal");
		}

return false;
		
	});
   });
});

El problema creo que está bien claro, pero lo explico igualmente.

Suponiendo que tengo una página estática donde se van cargando los contenidos en una caja según pulso en enlaces... todo funciona correcto.

El problema está cuando esos contenidos también tienen enlaces para cargar dentro de otra caja... desaparece todo y me los carga tal cual el archivo eliminando los contenidos anteriores... es decir, como una pagina nueva.


Espero su respuseta. Muchisimas Gracias programmers :D
Daria todo lo que sé por la mitad de lo que ignoro
ponlo en un div diferente , Por ejemplo <div id='subseccion'></div> Vamos 1 div vacio y lo cargas ahi , si no te lo modifico un poco y probalo :

Lo mas facil que se me ocurre para solucionarlo si es como yo creo es esto (ahora modifico y lo pongo)

Código: Seleccionar todo

$(document).ready(function(){
	$(".items").load("pages/inicio.php");
	function enlaces() {
		var href = $(this).attr("HREF");
		$(this).attr({ href: "#"});

		$(this).click(function(evento){
			evento.preventDefault();
			$(".items").fadeOut("slow",function() {
				$(".items").load(href,function() {
					$(".scrollable").scrollable({ vertical: true, keyboard: true, mousewheel: true, speed: 400});
					$(".scrollable").scrollable().begin(0);
					$(".items").fadeIn("slow",function(){ $(".load").fadeOut("normal"); });
					$("#menu a").each(enlaces);
				});
			});
			$(".load").remove();
			$(".carga").append('<DIV CLASS="load"></DIV>');
			$(".load").fadeIn('normal');
			return false;
		});
	}
	$("#menu a").each(enlaces);
});
espero que te sirva mi modificacion saludos , si no has lo que te dije arriba
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
Muchísimas gracias ps1c0s1s por tu respuesta.

Te cuento que tu código hace cosas muy raras en Mozilla, en IE funciona mas o menos bien pero en mozilla se vuelve algo loco, primero carga los enlaces bien, imaginate.

Enlace1
Enlace2
Enlace3

De primeras sale enlace1, luego pinchas en enlace2 y te carga el contenido perfecto, lo mismo pasa con el enlace3, vuelves a pinchar y aparece correcto incluso cuando vuelves a pinchar el enlace1, pero el problema viene apartir de aquí, si vuelves a pinchar en enlace2 o enlace3 aparece el contenido del enlace1 y se olvida de cargar el resto de enlaces que hayas pulsado.

En cuanto a mi duda no es arreglar el codigo de enlaces (sinceramente creo que el mio funciona perfecto, aunque he de admitir que tu ahorras muchas lineas de código :D) sino a... ¿¿ cómo podría cargar enlaces en diferentes DIV, sin romper el resto del contenido del enlace padre??

es decir...imaginate.

Enlace1
Enlace1-A
Enlace1-B
Enlace1-C

Enlace2
Enlace2-A
Enlace2-B
Enlace2-C

es decir, tengo como Enlace1 y Enlace2 que forman parte del menú, y luego dentro del contenido de Enlace1 y 2, tengo otros 3 enlaces "ABC", lo que quiero es que al pulsar sobre alguno de ellos, no sustituya el enlace padre (Enlace1) por el hijo (Enlace1-A), sino que manteniendo el contenido del enlace padre (Enlace1), coloque el contenido del enlace hijo ("A, B o C") que haya pulsado, dentro del otro contenido padre.

Nose si me explico bien... sino lo vuelvo a intentar.

En cuanto a lo que me comentabas de otro DIV. Así lo quiero, tengo otro div llamado .items2 que es donde se deben colocar los contenidos de los enlaces hijo sin romper el contenido del enlace padre, pero no funciona, rompe el enlace padre superponiendose a su contenido y mostrando únicamente el enlace hijo.

Espero que me puedan ayudar... Muchísimas Gracias y Salu2. Gracias nuevamente ps1c0s1s
Daria todo lo que sé por la mitad de lo que ignoro
He restructurado el codigo, os lo muestro aquí:

Código: Seleccionar todo

var x;
x=$(document);
x.ready(EfectoMenu);
x.ready(IniciarEventos);

function EfectoMenu()
{
$("ul span").css("opacity","0");
$("ul span").hover(function () {
		$(this).stop().animate({
			opacity: 1
		}, 'slow');
		},
		function () {
			$(this).stop().animate({
				opacity: 0
			}, 'slow');
		});
}

function IniciarEventos()
{
$(".items").load("pages/inicio.php");
$("a").each(Contenidos00);
}
 
 function Contenidos00()
{
var href = $(this).attr("HREF");
$(this).attr({ href: "#"});
$(this).click(EnlacesClick)

function EnlacesClick(evento)
{
evento.preventDefault();
$(".items").fadeOut("slow", loaditems);
$(".load").remove();
$(".carga").append('<DIV CLASS="load"></DIV>');
$(".load").fadeIn('normal');

	function loaditems()
	{
	$(".items").load(href);
	$(".items").fadeIn("slow", hideLoader);
	}
	function hideLoader()
	{
	$(".load").fadeOut("normal");
	}

return false;

}
}

Para explicarles nuevamente lo que quiero hacer viendo ese codigo es lo siguiente:

Supongamos que tengo un html donde cargo "pages/inicio.php" en una caja llamada '<div class="items">'.

Pues ahora bien, dentro de "inicio.php" (que es la página que he cargado anteriormente en el html), dispongo de 3 enlaces y una caja llamada '<div class="items2">', Donde según pulso en cada uno de los enlaces me carguen diferentes contenidos en esa caja (esos contenidos son archivos externos) sin machacarse el contenido padre (el de la caja '<div class="items">' del archivo inicio.php donde también se encuentran los enlaces como os he dicho anteriormente).


Y eso es lo que busco... si me pueden ayudar cuanto antes posible os lo agrecería muchísimo ya que es algo urgente. Muchísimas Gracias y Salu2 compañeros de indetectables.
Daria todo lo que sé por la mitad de lo que ignoro
Te la estas complicando mucho , deberias tener una parte que no se toca y si quieres cargar el contenido, lo cargas en una parte, que podria ser un div y asi si quieres puedes "apilar" los divs sin tocar la pagina ponerlos para que los eliminen etc y sin tocar el menu recargar cuando fuera necesario solo esa parte quedaria mas lindo y mucho mejor.

Tendrias que separar los enlaces a mostrar y cargarlos a parte devolver la pagina en json por ejemplo con un array de enlaces a añadir si cargas todo, siempre tendras que reaplicarles los efectos que les hayas metido en el ready porque no los habran codigo al ser nodos nuevos bueno esto en realidad tambien tienes que aplicarselos a los nuevos

Código: Seleccionar todo

<ul><li></li></ul>
tambien vale para esta cuestion , es bastante sencillo.
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
Debido a mi baja experiencia con JS y a mis quebraderos de cabeza con lo mismo, decidí cargar las páginas mediante ?id= en php jajajajaj

por lo tanto... soluccionado :D, ahora quiero soluccionar en otro post aparte (viewtopic.php?f=13&t=26476) ese efecto más otras cosillas pequeñas que me quedan como titulos dinámicos para cada contenido y urls amigables... si tienen algo de info se lo agradecería de verás...

Muchísimas gracias ps1c0s1s por perder tu valioso tiempo conmigo. Gracias bro
Daria todo lo que sé por la mitad de lo que ignoro
Responder

Volver a “Otros lenguajes”