Клик По Созданому Елементу

  • Автор темы begin29
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

begin29

#1
Доброго времени суток, есть следующий код:

Код:
shapes = [];

createRect = function (x, y) {
shape = r.rect(x, y, 95, 25, 20);
shapes.push(shape);
text = r.text(x + 40, y + 10, "New node");
texts.push(text);
for (i = 1; i < shapes.length; i++) {
//color = Raphael.getColor();//рандомний колір
tcolor = "#4C5053";
scolor = "#BDBFC1";
fcolor = "#FCFEFF";
shapes[i].attr({ fill: fcolor, stroke: scolor, "stroke-width": 2, cursor: "move" });
texts[i].attr({ fill: tcolor, stroke: "none", "font-size": 15, cursor: "move" });
array = new Object();
array[i] = ("shapes" + i);
shapes[i].pair = texts[i];
texts[i].pair = shapes[i];
shapeLength = shapes.length;

//alert(shapeLength);
shapes[i].drag(move, dragger, up);
texts[i].drag(move, dragger, up);
};

}; //endcreaterect

document.getElementById("image").onclick = function () {
createRect(CRX, CRY);
Select();
changeC();

};
При клике на картинку "image" создаются, с помощью библиотеки Raphael прямоугольники. Как мне можно обращатся к каждому прямоугольнику? Тоесть как при клике на один из прямоугольников делать с ним что-то?
 
B

begin29

#2
с помощью функции Select(), я вызываю alert на клик по элементу, но вызывается только последний alert. Что тогда мне делать?

Код:
var Select = function () {

for (x in array) {
joptarray.push(shapes[x]);
//if (shapeLength == i) {
if (shapes[x]) {
shapes[x].click(function () {
selected = shapes[x];
if (selected == shapes[x]) {
alert("shape" + x);
//shapes[1].attr({ stroke: "#2C81C2", "stroke-width": 2 });
};
});
};

};
};
 
B

begin29

#3
Спасибо всем!!! Решыл: :blink:


Код:
z++;

shapes.push(r.rect(x, y, 95, 25, 20).attr({ fill: fcolor, stroke: scolor, "stroke-width": 2, cursor: "move" }).data("shape", z)
.click(function () {
alert(this.data("shape"));
}));
 
Статус
Закрыто для дальнейших ответов.