Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

293
Views
¿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 answers
Answer question

0

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

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

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!