ООП. Элементы массива в качестве экземпляра класса
Есть класс:
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, время: 06:31. |