Показать сообщение отдельно
  #1 (permalink)  
Старый 30.10.2012, 14:37
Интересующийся
Отправить личное сообщение для IDCh Посмотреть профиль Найти все сообщения от IDCh
 
Регистрация: 28.08.2012
Сообщений: 12

Создание своей библиотеки. Создание двух одинаковых объектов. Как избежать?
Я делаю свою библиотеку для работы с 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, могу запостить.
Ответить с цитированием