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

146
Vistas
How to get current data slider when slider changes and when initial conditions?

I created a slider that has a data-banner attribute to send its data to Google Analytics.

I want the data sent to google analytics is the data from the current slide. I've made the script as below, but the Banner 1 data doesn't appear in the console when it's in the initial state. What I want is the first data banner is appear too. What is currently happening is when the slider changes, banner data appears (the initial not appears).

Can anyone help me?

$(document).ready(function(){
$('#carouselExampleSlidesOnly').on('slid.bs.carousel', function () {
    let currentActiveSlide = $('.carousel-item.active');

    if(currentActiveSlide){
            let dataBanner = $(currentActiveSlide).children('.main-banner-item').data('banner')
      let arrayPromotions = [];
      
      arrayPromotions.push({
        "id": dataBanner.id,
        "name": dataBanner.name
      })

      //gtag('event', 'view_promotion', {
      //  "promotions" : arrayPromotions
      //});
      
      console.log(arrayPromotions)
            console.log(dataBanner)
    }

})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/js/bootstrap.min.js" integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.min.css" integrity="sha512-T584yQ/tdRR5QwOpfvDfVQUidzfgc2339Lc8uBDtcp/wYu80d7jwBgAxbyMh0a9YM9F8N3tdErpFI8iaGx6x5g==" crossorigin="anonymous" referrerpolicy="no-referrer" />

<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <div class="main-banner-item" data-banner='{"id": "1", "name": "Banner 1"}'> 
        Banner 1
      </div>
    </div>
    <div class="carousel-item">
      <div class="main-banner-item" data-banner='{"id": "2", "name": "Banner 2"}'> 
        Banner 2
      </div>
    </div>
    <div class="carousel-item">
      <div class="main-banner-item" data-banner='{"id": "3", "name": "Banner 3"}'> 
        Banner 3
      </div>
    </div>
  </div>
</div>

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Here may this piece of code solve your issue.

var arrayPromotions = [];
var firstSlide = $('#carouselExampleSlidesOnly').find(".carousel- item.active .main-banner-item").data("banner"); 
arrayPromotions.push({
  "id": firstSlide.id,
  "name": firstSlide.name
});

Please check if it's helpful to you or not.

$(document).ready(function(){
var arrayPromotions = [];
var firstSlide = $('#carouselExampleSlidesOnly').find(".carousel-item.active .main-banner-item").data("banner"); 
arrayPromotions.push({
  "id": firstSlide.id,
  "name": firstSlide.name
});
console.log(arrayPromotions);
console.log(firstSlide);
//gtag('event', 'view_promotion', {
    //  "promotions" : arrayPromotions
//});
$('#carouselExampleSlidesOnly').on('slid.bs.carousel', function () {
    let currentActiveSlide = $('.carousel-item.active');

    if(currentActiveSlide){
            let dataBanner = $(currentActiveSlide).children('.main-banner-item').data('banner')
      let arrayPromotions = [];
      
      arrayPromotions.push({
        "id": dataBanner.id,
        "name": dataBanner.name
      })

      //gtag('event', 'view_promotion', {
      //  "promotions" : arrayPromotions
      //});
      
      console.log(arrayPromotions)
            console.log(dataBanner)
    }

})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/js/bootstrap.min.js" integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.min.css" integrity="sha512-T584yQ/tdRR5QwOpfvDfVQUidzfgc2339Lc8uBDtcp/wYu80d7jwBgAxbyMh0a9YM9F8N3tdErpFI8iaGx6x5g==" crossorigin="anonymous" referrerpolicy="no-referrer" />

<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <div class="main-banner-item" data-banner='{"id": "1", "name": "Banner 1"}'> 
        Banner 1
      </div>
    </div>
    <div class="carousel-item">
      <div class="main-banner-item" data-banner='{"id": "2", "name": "Banner 2"}'> 
        Banner 2
      </div>
    </div>
    <div class="carousel-item">
      <div class="main-banner-item" data-banner='{"id": "3", "name": "Banner 3"}'> 
        Banner 3
      </div>
    </div>
  </div>
</div>

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