Cargar pagina en div segun el enlace que clickee

tOWERR

Hola buenas, estoy liado con una página y ayer estuve por la noche intentando hacer con jquery y javascript que al pinchar en un enlace la página se me abriera en un div. Le paso el id del enlace pero no me lo abre, me lo abre en otra página siempre. ¿Como puedo solucionar esto?
Os dejo mi codigo:

CODIGAZO

Y en cada enlace en el onClick llamo a la función d_id(i) donde i es un valor fijo distinto que le paso en cada enlace.

¿Alguien me puede ayudar?
Un saludo.

Khanser

La idea es que hagas lo mismo, pero no uses anchors. Pillas el texto, le pones por css que tenga underscore, que aparezca el cursor, como si fuera un link. Le añades un .click() con el comportamiento que tenga y te funcionará. El problema de usar anchors es que su comportamiento 'by default' no puedes modificarlo excepto por la propiedad target, donde puedes elegir si te abre pestaña nueva, si te aprovecha una anterior.. etc. Cuando cliques un anchor se te va a ir a otra página. La solucion es que en lo que cliques no sea un anchor y le hayas puesto comportamiento javascript cuando le cliques :)

tOWERR

Ya está solucionado, dejo aqui el codigo por si a alguien le interesa.

CODIGO

el enlace de la pagina lo almaceno en el atributo name del boton.

tOWERR

Lo que me gustaria ahora hacer, es cuando hace click en el boton que antes de que me carge la pagina me carga una pagina de "loading" que me he creado yo. Una especie de página de precarga antes de mostrar la pagina en el div. La pagina de loading me da igual mostrarlo en el div, con mostrarla y que cargue despues la pagina de la capa me vale. ¿Alguien me ayuda por favor?

JuAn4k4

Esto te coje todos los a con href y elimina el comportamiento por defecto (link) y te hace el load del href dentro del div.

   $(document).ready(function(){
       $("a").each(function(){
         var href = $(this).attr("href");
         $(this).click(function(e){
            e.preventDaefault(); // Evita que se abra el link
            $("#divConImagenLoading").show();
            $("#principal").load(href);
            $("#divConImagenLoading").hide();  
}); }); });
1 respuesta
tOWERR

#5

¿Y si quisiera ejecutarlo cuando seleccionara un button? Porque poniendo "input" donde "a", se ejecuta cuando selecciono cualquier elemento input. ¿De que manera puedo hacer para que solo se seleccione cuando pinche en un button?

JuAn4k4

Lo mismo, pero cambiando el selector inicial:

http://api.jquery.com/category/selectors/

Para inputs :

http://api.jquery.com/input-selector/

Estos se suelen usar :

$(':input[type=submit]')

$(':input[type=button]')

Usuarios habituales

  • JuAn4k4
  • tOWERR
  • Khanser