Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

297
Vistas
¿Cómo cargar un div/clase específico en un archivo usando ajax?

Tengo un archivo llamado main.html que contiene varios div, cada uno con 2 clases: el primero es su clase específica, el segundo es una clase llamada menu-item que uso para determinar si se activará un evento cuando se haga clic en él.

El archivo contiene esto:

 <div id="load-here"> </div> <div class="item-1 menu-item"> click this </div>

También tengo un archivo gallery.html que quiero cargar en el archivo main.html en el div #load-here , y digamos que contiene esto:

 <div class="menu-item> <!-- some image here --> <img href="img/1.jpg /> </div>

El script que tengo es este:

 $(document).ready(function() { $( "div" ).click(function() { if ( $( this ).hasClass( "menu-item" ) ) { $("#load-here").load("gallery.html" + this.class); } }); });

El problema: no funciona. He probado varios cambios. De alguna manera no se está cargando en el div #load-here

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Echa un vistazo a esto: http://api.jquery.com/load/

 $( "#b" ).load( "article.html #target" );
over 4 years ago · Santiago Trujillo Denunciar

0

Parece que hay varios problemas:

  1. Por esto: $( "div" ).click(function() ... está registrando el clic en todos los div s disponibles. Esto podría causar un comportamiento extraño. Mejor uso: $("div.menu-item").click( ...
  2. Asegúrese de comprender el contexto y el objetivo del evento en su función de devolución de llamada. A veces this te está engañando, ya que el contexto de la llamada puede ser diferente. Las cosas son más claras si maneja el evento como un parámetro explícito y verifica el objetivo del evento.
  3. Supongo que le gustaría dar un parámetro para su galería.html, pero como menciona @charlietfl, no hay .class . Pero, en el DOM hay un .className . Mejor intente usar jQuery $().attr('class') . Además, el parámetro necesita un separador: gallery.html?parameter

Para resumir, aquí mi sugerencia:

 $("div.menu-item").click( function(event) { var jqTarget = $(event.target).closest('.menu-item'); if ( jqTarget.hasClass( "menu-item" ) ) { $("#load-here").load("gallery.html" + "?" + this.class); } });

closest() intentará encontrar el elemento coincidente más cercano, en caso de que el objetivo del clic no esté en el div en sí, sino en un img secundario o de otra manera. Por lo tanto, la condición en la sugerencia debe usarse para obtener información más específica sobre qué elemento del menú se hizo clic: if ( jqTarget.hasClass( "that-specific-item" ) ...

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda