UIKit 3 accordion external button

565 Views Asked by At

How to close\ open accorion on click to .shewron element?

Example: https://codepen.io/npofopr/pen/vYKKXbJ?editors=1010

let util = UIkit.util;
let lkOrderIconExpand = document.querySelectorAll(".shewron");

util.on(lkOrderIconExpand, "click", function () {
  let accordionEl = util.$("[uk-accordion]");

  // find closed li array
  let allItems = util.$$("[uk-accordion] > li");

  // for each element
  util.each(allItems, function (el) {
    // get index
    let openIndex = util.index(el);

    // Check if some element has some class
    if (util.hasClass(allItems, "uk-open")) {
      console.log("Class was found!");
      // toggle it
      UIkit.accordion(accordionEl).toggle(openIndex);
    } else {
      console.log("Class was NOT found!");
      // toggle it
      UIkit.accordion(accordionEl).toggle(openIndex);
    }
  });
});
1

There are 1 best solutions below

3
On

You can easily do it with CSS:

.uk-accordion-title::before{
background-image: url(**icon-url-here);
}
.uk-open > .uk-accordion-title::before{
background-image: url(**icon-url-here);
}

So that your chevron icons will show instead of default accordion icons.