0

I have a problem with the accordion in Bootstrap Native. Everything works fine except for one thing. After expanding other .collapsed accordion, the class is not added to the former that was developed. I've tried several ways and still nothing. Adding the collapsed class is addClass (element, collapsed); just the other way removeClass ... Below JS file:

// event targets and constants
var accordion = null, collapse = null, self = this, 
  isAnimating = false, // when true it will prevent click handlers
  accordionData = element[getAttribute]('data-parent'),

  // component strings
  component = 'collapse',
  collapsed = 'collapsed',
  test = 'test'

  // private methods
  openAction = function(collapseElement) {
    bootstrapCustomEvent.call(collapseElement, showEvent, component);
    isAnimating = true;
    addClass(collapseElement,collapsing);
    addClass(collapseElement,showClass);
    addClass(element,collapsed);

    setTimeout(function() {
      collapseElement[style][height] = getMaxHeight(collapseElement) + 'px';


      (function(){
        emulateTransitionEnd(collapseElement, function(){
          isAnimating = false;
          collapseElement[setAttribute](ariaExpanded,'true');
          removeClass(collapseElement,collapsing);
          collapseElement[style][height] = '';
          bootstrapCustomEvent.call(collapseElement, shownEvent, component);
        });
      }());
    }, 20);
  },
  closeAction = function(collapseElement) {
    bootstrapCustomEvent.call(collapseElement, hideEvent, component);
    isAnimating = true;
    collapseElement[style][height] = getMaxHeight(collapseElement) + 'px';
    setTimeout(function() {
      addClass(collapseElement,collapsing);

      collapseElement[style][height] = '0px';
      (function() {
        emulateTransitionEnd(collapseElement, function(){

          isAnimating = false;
          collapseElement[setAttribute](ariaExpanded,'false');
          removeClass(collapseElement,collapsing);
          removeClass(collapseElement,showClass);
          collapseElement[style][height] = '';
          bootstrapCustomEvent.call(collapseElement, hiddenEvent, component);
        });
      }());
    },20);
  },
  getTarget = function() {
    var href = element.href && element[getAttribute]('href'),
      parent = element[getAttribute](dataTarget),
      id = href || ( parent && targetsReg.test(parent) ) && parent;
    return id && queryElement(id);
  };

// public methods
this.toggle = function(e) {
  e.preventDefault();
  if (isAnimating) return;
  if (!hasClass(collapse,showClass)) { 
      self.show(); 
  } else { 
      self.hide(); 
  }
};
this.hide = function() {
  closeAction(collapse);
  addClass(element,collapsed);
//jak się zwija dodaje klase
};
this.show = function() {
  openAction(collapse);
  removeClass(element,collapsed);
//jak się rozwija usuwa klase

  if ( accordion !== null ) {
    var activeCollapses = getElementsByClassName(accordion,component+' '+showClass);

    for (var i=0, al=activeCollapses[length]; i<al; i++) {
      if ( activeCollapses[i] !== collapse) closeAction(activeCollapses[i]);
    }
  }
};

// init
if ( !(stringCollapse in element ) ) { // prevent adding event handlers twice
  on(element, clickEvent, this.toggle);
}
collapse = getTarget();
accordion = queryElement(options.parent) || accordionData && getClosest(element, accordionData);
element[stringCollapse] = this;
};

As you can see the code is not added to the previously developed(<a href...) .collapsed accordion.

Tom Aranda
  • 5,919
  • 11
  • 35
  • 51
paciek
  • 100
  • 1
  • 9

0 Answers0