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

175
Vistas
buttons are like one, when i click either button they both do the same thing

why isn't it not working when I press the previous button, it's like both the previous and next button are the same

here's the code: https://codepen.io/pinkypink/pen/NWjzMre

const images = document.querySelector('.carousel_images');
const buttons = document.querySelectorAll('.carousel_button');

const imageCount = document.querySelectorAll('.carousel_images img').length;
let imageIndex = 1;
let translateX = 0;

buttons.forEach(button => {
  button.addEventListener('click', e => {
    if (e.target.id === 'next') {
      if (imageIndex !== 1) {
        imageIndex--;
        translateX += 650;
      }
    } else {
      if (imageIndex !== imageCount) {
        imageIndex++;
        translateX -= 683;
      }
    }
    
    images.style.transform = `translateX(${translateX}px)`;
  });
});
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Use e.currentTarget not e.target.

e.target is the element that was clicked - in your case the SVG element.

e.currentTarget is the element whose event listener is being called - in your case the div.

about 4 years ago · Juan Pablo Isaza Denunciar

0

What I am pointing out in the comment is that if you add the console... statement, you will see that e.target.id returns an empty string ("").

Therefore, the if statement becomes

if ("" === 'next') {

which will always be false so the else statement runs which is the previous button.

buttons.forEach(button => {
  button.addEventListener('click', e => {
    if ("" === 'next') {  <-------------------------------------
      if (imageIndex !== 1) {
        imageIndex--;
        translateX += 650;
      }
    } else {
      if (imageIndex !== imageCount) {
        imageIndex++;
        translateX -= 683;
      }
    }
    
    images.style.transform = `translateX(${translateX}px)`;
  });
});

This answers your question: why isn't it working when I press the previous button, it's like both the previous and next button are the same

about 4 years ago · Juan Pablo Isaza 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