ООП. Элементы массива в качестве экземпляра класса
Есть класс:
var class = function(i) { this.index = i; this.res = "Мой номер " + i; this.act = function(){ alert(this.act); } } Нужно каждому элемента массива определить класс: objects = $(".text"); objects.each(function (index) { this = new objClass(index); this.move(); } Как правильно это сделать? (запись выше не верна) |
Какому массиву? обычны в jQuery для этих целей используют data
objects = $(".text"); objects.each(function (index) { this.data("someClass", new objClass(index)).data("someClass").move(); } |
вопрос неясен.... что такое "каждому элементу массива определить класс?"
|
Цитата:
|
Вобщем не совсем все получается как хотелось бы..
Есть 4 елемента: <div id="elemToMove"> <div class="toMove"></div> <div class="toMove"></div> <div class="toMove"></div> <div class="toMove"></div> </div> Нужно для каждого хранить по 2 свойства, допустим х и у, что бы потом использовать в анимации. Делаю так (упрощенный код): var objClass = function (x, y) { px = x; py = y; }; function moveObj (obj) { $(obj).animate({left: obj.px, top: obj.py}, 1000); }; objects = $(".toMove"); objects.each(function () { this = new objClass(x, y); alert(this.px +" "+ this.py); moveObj(this); }; Вобщем где-то так, но не работает... Пробую по-другому: objects.each(function (index) { obj = objects[index]; obj = new objClass(x, y); alert(obj.px +" "+ obj.py); moveObj(obj); }; Свойства px и py есть, но с анимацией проблема, не находит метод animate у объекта obj. Пробую иначе: objects.each(function (index) { obj = objects[index]; obj.prototype = objClass(x, y); alert(obj.px +" "+ obj.py); moveObj(obj); }; Здесь с анимацией все хорошо, только отсутствуют свойства px и py. Подскажите, как правильно сделать? |
Часовой пояс GMT +3, время: 05:31. |