Я делаю свою библиотеку для работы с css свойствами и dom элементами и столкнулся с проблемой при работе с функцией для изменения параметра (в моем случае тестирую с opacity).
Функция у меня
function _i(id) {
this.flowInterval = null;
this.flowProperty = null;
this.flowValue = null;
this.flowwhereTo = null;
this.flowObject = null;
this.flowType = null;
this.objects = [];
this.instance = null;
}
Я убрал условия и распределение по селекторам, чтобы не нагружать код.
Как вы видите, у меня есть массив objects. Именно в него загружаются все выбранные элементы и с ним работают методы прототипа.
Так вот, я столкнулся с тем, что даже, к примеру, для
_i('#one').flow('opacity', '0');
_i('#one').flow('opacity', '1');
Создается два разных объекта _i
То есть, в теории метод flow очищает все переменные, что указаны в функции _i
(т.е.)
this.flowInterval = null;
this.flowProperty = null;
this.flowValue = null;
this.flowwhereTo = null;
this.flowObject = null;
this.flowType = null;
this.objects = [];
this.instance = null;
и задает им новые параметры.
Суть метода flow в изменении параметра, к примеру opacity.
В теории все в порядке.
На практике внезапно оказывается, что у меня два разных объекта
_i('#one'), и оба они разрывают элемент с id="one" на две стороны и на выходе - мерцающий до бесконечности элемент.
По моему, я не совсем корректно понимаю создание и принцип работы библиотек, да? Если я не ошибаюсь, функция _i должна возвращать(!) выбранный(ые) элемент(ы), а не просто назначать их в массив, да?
Зачем я создал массив, в который через push() забиваются новые элементы? Чтобы иметь возможность выбирать несколько (к примеру с одинаковым классом) объектов и после через цикл прогонять их по методам (к примеру изменение css свойств)
На практике у меня костыль на костыле костылем погоняет. Именно в этом методе, с другими вариант с массивом работает вполне нормально.
Если нужны подробности метода flow и внутренности _i, могу запостить.