Имеется такая часть кода, проблема в том, что передается не то значение в функцию self.open(), а именно startHeight. При каждой итерации цикла, значение startHeight меняется, но при клике, когда срабатывает addEventListener, передается последнее, которое было сохранено в startHeight. Что с этим можно сделать?
var self = this;
this.accordion = document.querySelectorAll(options.accordionSelector);
this.init = function() {
if(this.accordion.length > 0) {
for(var i = 0; i < this.accordion.length; i++) {
//Прячем всю информацию при загрузке
var desc = this.accordion[i].querySelector('.accordion__information');
var startHeight = desc.clientHeight;
desc.style.height = '0';
desc.style.padding = '0 22px';
//Действия при клике по названию
var header = this.accordion[i].querySelector('.accordion__header');
header.addEventListener('click', function(event){
self.open(event.target, startHeight);
})
}
}
}