Limited availability during the holidays

Another busy year is coming to its end, and an exciting year lies ahead. In order to get ready for a fresh new start, our team will spend a few days' rest during the winter holidays. Over the holiday break, we will have reduced staffing from December 20th, 2024, to January 5th, 2025, so please be patient if you do not receive a response as quickly as you normally would.

We send our warmest wishes for happiness, health, and success throughout the coming year. Thank you for your continued support, and may you have a peaceful and blessed Happy Holidays!

Okay
  Public Ticket #3752255
Communicating between two sliders on the same page
Open

Comments

  •  3
    David started the conversation

    Hi.

    Not sure if this is included in support, but...

    I'm trying to communicate between two popup sliders. When a button is clicked in one, the other closes:

    document.addEventListener('DOMContentLoaded', function() {               
        // Handle button click inside the 'christmas-sale' slider  
        const christmasButton = document.getElementById('view-christmas-sale')  
        christmasButton.addEventListener('click', () => {               
            const snowmanGlobeSlider = document.querySelector('[data-ls-slug=snowball-lightbulb]').layerSlider()  
            snowmanGlobeSlider.api('closePopup')  // Close popup in snowman-globe slider  
        })   
      
        // Handle button click inside the 'snowman-globe' slider  
        const snowmanButton = document.getElementById('view-christmas-ornaments')          
        snowmanButton.addEventListener('click', () => { ⌬ tabnine {}  
            const christmasSaleSlider = document.querySelector('[data-ls-slug=christmas-bottom-bar]').layerSlider()
            christmasSaleSlider.api('closePopup')  // Close popup in christmas-sale slider   
        })   
    })   

    I get the following error:


    Uncaught TypeError: document.querySelector(...).layerSlider is not a function
        at HTMLSpanElement.<anonymous> (layerslider.js?ver=1730035793:8:96)


  •  138
    George replied

    Hello David,

    I've modified the end of your code:

    snowmanButton.addEventListener('click', () => { ⌬ tabnine {}  
            const christmasSaleSlider = document.querySelector('[data-ls-slug=christmas-bottom-bar]')
            christmasSaleSlider.layerSlider('closePopup')  // Close popup in christmas-sale slider   
        })   

    I think, that should work.

    Best Regards,
    George | Kreatura Dev Team

  •  3
    David replied

    Unfortunately, this didn't work either. However, I came up up with an acceptable solution. I'll leave it here in case anybody else has the same problem.

    In the Project -> Event Callbacks list, I modified the "sliderDidLoad" function as such:

    function( event, slider ) {
      window.christmasSaleSlider = slider
    }

    Then in my javascript:

      window.cmcGoToOrnaments = () => {
        window.christmasSaleSlider.api('closePopup')  // Close popup in christmas-sale slider
        setTimeout(() => {
          window.location.href = "<forwarding-url>"
        }, 500)
      }

    A lot of global variables, but other than that, it seems to work well.

    Thanks for your help!

  •  138
    George replied

    Nice solution! Thank you for the feedback!

    Best Regards,
    George | Kreatura Dev Team