Инициализация нескольких объектов одновременно

Вопрос задан: 6 лет 8 месяцев назад   просмотров: 4
0

Есть 6 (могут быть и больше) полей (div) на странице, каждое поле я рассматриваю как объект.

function Field(obj, params){ .... self init=function(){ Инициализирует поле: обновление в нужный момент; присвоение полю элементов итд } self edit = function(){ Открывает модал данному полю для редактирования настроек итд. } .... self.init(); }

Подскажите, как при загрузке страницы инициализировать все поля?

field_1=new Field("id поля");

Как найти все поля и проинициализировать, если каждое поле имеет id? Как быть если поля классифицированы?

Пиши в коммент, если что не понятно, не знаю как иначе сформулировать вопрос.

Задан: 02-04-2013 в 18:30:03
почитай про то как делать плагины. думаю поможет. - 02-04-2013 в 20:15:17
Что за конструкция self init?Может var self=this. self.init= - 02-04-2013 в 21:14:59
@kaza4ok так оно и есть, я же всю конструкцию не привел. - 03-04-2013 в 06:54:18

Ответы   1

0

Я не знаю, что вы имели в виду, но надеюсь, что данный код поможет вам разобраться

// создадим переменную-функцию var Field = function (obj, params) { var init = function(){ if (obj.className.search('field-active')===-1) { // если объект не "инициализирован" console.log(obj.id); // выведем в консоль его id obj.className = obj.className + ' field-active'; // "инициализируем" объект } } init(); } divs = document.getElementsByTagName('div') // найдем все div for (i in divs) { var node = divs[i]; if (node.id) Field (node); // инициализируем, если есть id }

Попробуйте запустить его на этой странице. Первый раз он выведет все id (среди найденных div), во второй раз он не выведет ничего, т.к. все объекты будут "инициализированы".

P.S. А что вы понимаете под инициализацией?

Ответил: 02-04-2013 в 22:30:03
инициализаwbя в моем случае - это вызов метода init. Что-то в этом роде я и хотел. Даже так и подумывал, но хотел более красивое решение. - 03-04-2013 в 06:57:08