Вы можете использовать метод данных Рафаэля, чтобы связать два элемента вместе.
paper = Raphael(paper, 400, 400);
var circle = paper.circle(50, 50, 20)
.attr({
"fill": "#0ff"
})
.data("initialR", 20);
var labelize = function (shape, label) {
if (!label) {
var label = "StackOverflow"
};
var label = paper.text(shape.attr("cx"), shape.attr("cy"), label)
.attr({
"opacity": 0
});
shape.data("label", label);
var hoverIn = function () {
this.animate({
"r": 100
}, 500, "<>");
this.data("label").animate({
"opacity": 1
}, 500);
};
var hoverOut = function () {
this.animate({
"r": this.data("initialR")
}, 500, "<>");
this.data("label").animate({
"opacity": 0
}, 500);
};
shape.hover(hoverIn, hoverOut, shape, shape);
return shape;
};
circle = labelize(circle, "CaptSaltyJack");
JSFiddle